利用JS 直接调用执行OC代码,非提取URL
来源:互联网 发布:glibc malloc源码 编辑:程序博客网 时间:2024/05/01 18:40
一:
首先导入JavaScriptCore.framework:
二.
在需要JS调用OC方法的.m文件中导入头文件
三.
在OC中进行JS执行环境配置,和指定JS调用的方法的OC代码执行体
四.
这个利用JavaScriptCore.framework框架,使JS直接调用OC代码的实质是:
在JS中定义好方法,在OC中指定执行体;
JS调用的还是JS的方法,而方法的执行体可以由OC代码中编写;
上次忘记附上html跟js文件了,在此附上,供大家参考:
html:
js中定义的方法:
注意点:
1.这是加载本地的html文件时,做的一个demo,至于加载服务器提供的html文件时js调用OC方法,我猜测应该在webView的代理方法
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
里边做判断 是否加载的request中的URL是那个特定的html,如果是就在此方法中执行步骤三的操作;
2.这与不通过URL让JS直接调用OC方法,并不矛盾;
3.注意OC中定义的block代码块是跟js函数中的submit进行绑定,一定不能错;
关于上边提到的注意点1,笔者亲自实践,发现是不可行的,不过通过笔者苦逼的尝试,终于实现了JS直接调用OC本地方法;
在此在此做出补充:
首先,声明笔者项目开发情景是,加载一个重定向的html时调用执行OC的代码;
其次,方法配置步骤三,笔者测试应该放在webView加载完成的
- (void)webViewDidFinishLoad:(UIWebView *)webView{};监听方法中;
然后在配置完成后,通过OC执行JS中被配置过的JS中的脚本来达到调用OC的目的;
可能有点儿绕,不过细细体会一下还是能自圆其说的吧!!!
特别说明一下,代码中的isLoad是我在
// 监听网页的加载
-(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;
中通过
拦截到。
网上搜了好久都没有JS直接调用OC(非URL)本地方法特别有用的解决方案,通过自己的实践出不整理出来供大家参考,如果有什么不准确的地方,请大家留言指正,
谢谢。
- 利用JS 直接调用执行OC代码,非提取URL
- ios开发,javascript直接调用oc代码而非通过改变url回调方式
- ios开发,javascript直接调用oc代码而非通过改变url回调方式
- ios开发,javascript直接调用oc代码而非通过改变url回调方式
- iOS---javascript直接调用oc代码而非通过改变url回调方式
- iOS开发,javascript直接调用oc代码而非通过改变url回调方式
- ios开发中,关于javascript直接调用oc代码而非通过改变url回调方式
- iOS学习笔记77-ios开发,javascript直接调用oc代码而非通过改变url回调方式
- JavaScript直接调用OC代码
- js调用OC代码
- JavaScript调用OC,非改变url方式
- UIWebView中Html中用JS调用OC方法及OC执行JS代码
- UIWebView中Html中用JS调用OC方法及OC执行JS代码
- UIWebView中Html中用JS调用OC方法及OC执行JS代码
- UIWebView中Html中用JS调用OC方法及OC执行JS代码
- UIWebView中Html中用JS调用OC方法及OC执行JS代码
- IOS开发—JS调用OC(通过非URL的方式)
- 如何直接执行js代码
- 构造方法,成员方法的区别以及使用
- Html5 手机wap开发、微信开发、APP开发的优缺点-创业者必知
- Codeforces 651B Beautiful Paintings【贪心】
- java SE基础整理(面向对象)
- 2016年百度校招小结:我做技术面试官的一些思考
- 利用JS 直接调用执行OC代码,非提取URL
- QML中Rectangle的用法和属性
- 和GCD相关的“个数”及“求和”问题——hdu 2588、nyist 1007
- java设计模式——结构型之桥接模式
- css+div绝对居中
- 系统吞吐量、TPS(QPS)、用户并发量、性能测试概念和公式
- hadoop系列文档4-配置Yarn高可用HA
- 关于对AndroidManifest.xml的理解
- 判断字符串是否为”回文“