UIWebView 与JS交互,JSContext注入时机
来源:互联网 发布:英文网络面试常用口语 编辑:程序博客网 时间:2024/05/16 19:37
我们做WbeView与js交互,很多时候是使用JavaScriptCore来进行操作,但是使用JavaScriptCore,有时候方法注入时机不对,可能会导致无法正确调用。
比如在html页面刚刚加载的时候js需要调用OC的某个方法,有时候将方法注册写在-(void)webViewDidStartLoad:(UIWebView *)webView
中可能会无法正常调用到。
解决办法:
创建一个NSObject的Category 命名为”NSObject+JSAdditional”
添加方法
- (void)webView:(id)unuse didCreateJavaScriptContext:(JSContext *)ctx forFrame:(id)frame { [[NSNotificationCenter defaultCenter] postNotificationName:kWebviewCreateContext object:ctx];}
在PrefixHeader中添加引用“NSObject+JSAdditional.h”
WebView所在的ViewController中添加监听kWebviewCreateContext的方法
最后在监听方法中添加要注入的方法,这样无论在WebView加载html的任何时机js都可以正常调用OC方法。
-(void)addContextFuncs:(NSNotification *)noti{ JSContext *context = noti.object; self.context = context; [self setWebViewContext]; //设置需要注入的WebViewContext}
整个过程就是在UIWebView创建了JSContext之后会发出一个通知,接收到通知后立即注入OC方法,而UIWebView的代理方法最早也是要在网页开始加载的时候才去注入,可能注入时机就稍稍晚一些
有哪里表达不准确希望大神指正
阅读全文
0 0
- UIWebView 与JS交互,JSContext注入时机
- UIWebView-JSContext实现OC与JS交互
- UIWebView代码注入时机与姿势
- uiwebview与js交互
- UIWebView与js交互
- uiwebview与js交互
- uiwebview与js交互
- UIWebView与JS交互
- uiwebview与js交互
- uiwebview与js交互
- UIWebView与JS交互
- UIWebView与js交互
- UIWebView与JS交互
- UIWebView与JS交互上
- UIWebView与js(JavaScript)交互
- JS与UIWebView的交互
- js与UIWebView交互打电话
- UIWebView与JS的交互
- 仿AppStore 首页 转场动画
- 【工作中学到的小技巧】json
- 宋宝华:用systemd-nspawn运行最轻量级容器
- Opensource Circle: Docker和LXC的本质区别
- Angular4关于一个组件获取另一个组件中的变量的另外一种方式
- UIWebView 与JS交互,JSContext注入时机
- Jake Edge: 用systemd-nspawn创建容器
- Java版阿里云通信短信发送API接口实例(新)
- Java 生成可直接下载的二维码(spring boot)
- query子句解析
- 阿里巴巴牵手福特 共同打造智联网汽车
- java实现邮件发送
- 环信3.0添加聊天表情包
- redis基本认识以及在windows上Java操作redis例子