`
lin_llx
  • 浏览: 127263 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Javascript调用ObjC

阅读更多

今天在珠三角技术沙龙分享了一个关于如何在UIWebView的限制环境中,在JavaScript里面调用ObjC的函数的方法。

下面把slide分享出来,希望大家指摘,slide的最后一页有源码在github上面的地址。

需要注意的是,因为我使用了json-framework,可能编译的时候需要下载Json-framkework并且按照它的要求配置XCode,麻烦大家移步。

后续可能会放出如何将别的Xcode Project以静态编译的方式加入自己的项目里面的方法,敬请期待。

简介:在UIWebView的限制条件下,如何绕过苹果的SDK的限制,利用伪造CachedResponse对象和后端调用JavaScript的Callback的方式,成功探索出了在JS环境中调用ObjC函数的有效方法

幻灯片地址

源码地址

谢谢大家

2
7
分享到:
评论

相关推荐

    ios-一个简单的ObjC与JavaScript交互封装.zip

    在上述例子中,当JavaScript调用`handleJavaScriptCall`方法并发送消息时,`MyViewController`中的`handleJavaScriptCall:`方法会被调用。 交互Demo项目包含了实际的示例代码,可以帮助开发者快速理解并应用...

    ios-IOS JS与OC互相调用(JavaScriptCore).zip

    在iOS开发中,JavaScriptCore框架提供了JavaScript与Objective-C(OC)之间互操作的能力,使得原生应用能够执行JavaScript代码,并且能够从JavaScript调用Objective-C的方法。这种互操作性对于混合开发的应用尤其...

    JavaScript与Objective-c互相调用

    JavaScript与Objective-C互相调用是iOS应用开发中的一个重要技术,特别是在构建混合式应用程序时,它允许我们利用Web技术与原生平台的能力相结合。在Xcode 4.6.3这样的开发环境中,我们可以利用UIWebView来实现这种...

    IOS UIWebViewJS与OC互相调用

    - **JavaScript调用OC**: - 使用`window.location.href`或`window.webkit.messageHandlers`来发送消息到OC。例如,`window.location.href = "myapp://callNativeFunction?param=123"`,然后在OC中监听URL Scheme...

    OC调用JS以及JS调用OC的demo调用JS以及JS调用OC的demo

    在iOS开发中,Objective-C(OC)与JavaScript(JS)之间的交互是常见需求,尤其是在混合式移动应用开发中。这个示例项目提供了OC调用JS和JS调用OC的实现方式,帮助开发者更好地理解如何在两者之间进行通信。以下是...

    JS和OC代码互相调用

    一、JavaScript调用Objective-C 1. UIWebView:在早期,iOS应用通过UIWebView加载网页内容,UIWebView提供了`stringByEvaluatingJavaScriptFromString:`方法,可以直接执行JavaScript代码。例如: ```objc ...

    iOS javascript engine demo project

    这个“iOS javascript engine demo project”是一个实践示例,展示了如何在iOS应用中使用JavaScriptCore与JavaScript代码交互,包括执行JavaScript代码、调用JavaScript函数以及让JavaScript与Objective-C/Swift对象...

    cordova通过js调用OC原生代码demo

    当JavaScript调用插件方法时,Cordova会通过WebView和Native层之间的通信机制转发请求,然后在原生代码中执行相应的操作。 **2. 创建Cordova项目** 首先,你需要安装Cordova CLI工具,通过npm(Node Package ...

    OC中JavaScriptCore交互 JS交互

    JavaScript调用OC则相对简单,只需通过`JSContext`的`objectForKeyedSubscript:`方法获取OC对象,然后像调用JavaScript函数一样调用其方法。 实际应用中,OC与JavaScript的交互有很多场景,比如网页中的支付功能、...

    iOS与js相互调用

    在UIWebView中,可以定义一个`UIWebViewDelegate`协议的方法来监听JavaScript的`window.location`改变,通过添加自定义的URL Scheme来调用OC方法: ```objc @interface ViewController () @end @implementation ...

    webview与javascript交互,并解决编码问题

    JavaScript调用原生OC方法则需要用到JavaScriptCore框架,首先需要将OC方法注册到JavaScript上下文,然后在JavaScript中调用这个方法。以下是一个简单的例子: ```objc // 注册OC方法到JavaScript ...

    ios javascript core

    这个协议允许你定义一个Objective-C类,然后该类的方法可以被JavaScript调用。你需要创建一个Objective-C类,声明并实现`JSExport`协议。然后在这个类中,你可以定义一系列的方法,这些方法将在JavaScript环境中可用...

    iOS中使用JSPatch框架使Objective-C与JavaScript代码交互

    4. **JavaScript调用Objective-C方法** JSPatch提供多种方式运行JavaScript代码: - 直接运行JavaScript字符串。 - 从本地读取JavaScript文件。 - 从网络下载JavaScript文件。 例如,要弹出一个警告框,可以在...

    iOS Javascript与Objective-C互操作

    在实际应用中,你可能需要传递更复杂的数据类型,如JSON对象,或者从Objective-C端调用JavaScript函数。这都可以通过WKWebView的用户内容控制器和`WKScriptMessage`对象来实现。 总结来说,iOS中的JavaScript与...

    WKWebViewJS调用OC Demo

    本Demo "WKWebViewJS调用OC Demo" 主要展示了如何通过JavaScript(JS)与Objective-C(OC)进行交互,即JS调用OC的方法,并传递参数。下面将详细介绍这一过程。 首先,我们需要导入WKWebView相关的框架,通常在`...

    ios-利用JavaScriptCore实现JS调用OC OC调用JS,实现弹出警告框,以及修改webView的image.zip

    这个框架极大地扩展了WebView的功能,使得原生应用可以利用JavaScript的灵活性,同时也能从JavaScript调用Objective-C的方法。本文将详细探讨如何利用JavaScriptCore在iOS中实现JS调用OC以及OC调用JS,特别是弹出...

    UIWebView与 javascript的交互二

    1. JavaScript调用Objective-C:使用`stringByEvaluatingJavaScriptFromString:`方法,我们可以执行JavaScript代码并获取结果。例如,假设我们有一个JavaScript函数`callNativeFunction`,可以在Objective-C中这样...

    IOS下 内嵌 HTML编辑器 Objective-C与JavaScript数据交互

    2. `UIWebViewDelegate`:通过实现`UIWebViewDelegate`协议,我们可以监听网页的加载事件,以及接收JavaScript调用原生方法的回调。例如,当JavaScript通过`window.location.href = 'myapp://someData'`发送数据时,...

    UIWebView与 javascript的交互三

    当JavaScript触发一个URL加载时,这个方法会被调用。通过分析URL,可以从URL查询字符串中获取JavaScript传递的数据。 ```objc - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *...

    JavaScriptCore

    当JavaScript调用`jsDidCall`时,会触发Objective-C的代理方法: ```objc - (void)jsDidCall:(JSValue *)message { NSString *msg = message.toString; NSLog(@"Received message from JavaScript: %@", msg); } ...

Global site tag (gtag.js) - Google Analytics