JS 与 UIWebView 交互

最近由于公司需求,需要与h5进行交互,所以做了相关工作,写下这篇文章,让以后有此需求的小伙伴能快速上手,免踩坑

1.首先我创建了一个管理类JSandOCManager ,在.h文件  生成一个代理继承JSExport,在此代理中注入你和h5前端约定好的方法

JS 与 UIWebView 交互_第1张图片

2.给JSandOCManager加上第一步的代理 代码如下

JS 与 UIWebView 交互_第2张图片

3.在.m文件里实现方法 可以用代理的方法将响应的结果传送出去 也可以用block的方式 例如

JS 与 UIWebView 交互_第3张图片

4.回到你的控制器 在webviewDidFinishLoad 方法里注入你的manager

JS 与 UIWebView 交互_第4张图片

5.响应代理方法 在方法里做你想要干的事情 例如 弹出菊花 在此注意 如果是UI处理 要回到主线程去处理UI

JS 与 UIWebView 交互_第5张图片


6.如果native 调用JS 可以在代理响应方法里调用JS 也可以回调manager 调用JS

JS 与 UIWebView 交互_第6张图片


7.到达这一步 基本工作已经完成 不出意外地话 你就可以JS Native 相互调用了   H5前端的调用方式为window.YiZhenJSBridge.showLoading()的方式

由于UIWebView 还存在内存问题  可以webviewDidFinishLoad 方法里添加如下几行代码
//    [[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"WebKitCacheModelPreferenceKey"]

//    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitDiskImageCacheEnabled"];

//    [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"WebKitOfflineWebApplicationCacheEnabled"];

//    [[NSUserDefaults standardUserDefaults] synchronize];

当然也可以 在delloc 方法里加载一个空链接

你可能感兴趣的:(JS 与 UIWebView 交互)