上一篇文章介绍了UIWebView 如何通过WebViewJavascriptBridge 来实现JS 与OC 的互相调用,这一篇来介绍一下WKWebView 又是如何通过WebViewJavascriptBridge...来实现JS 与OC 的互相调用的。...WKWebView 下使用WebViewJavascriptBridge来实现JS 与OC 的互相调用,也是通过拦截URL来实现的。...下面开始介绍WKWebView 如何通过WebViewJavascriptBridge 来实现JS 与OC 的互相调用。...示例工程地址:JS_OC_WebViewJavascriptBridge Have Fun!
同样的用WKWebView也可以拦截URL,做JS 与OC交互。关于WKWebView与UIWebView的对比,大家请自动百度或者google。...除了代理方法和WKWebView的使用不太一样,关于WKWebView更详尽的讲解和用法,还是自行搜索学习,本文重点还是讲解如何实现JS 与OC 互相调用。...调用 JS 方法 JS 调用OC 方法后,有的操作可能需要将结果返回给JS。...这时候就是OC 调用JS 方法的场景。 WKWebView 提供了一个新的方法evaluateJavaScript:completionHandler:,实现OC 调用JS 等场景。...示例工程地址:JS_OC_URL
/u010105969/article/details/53541088 本篇博客则是讲了OC传值给JS,代码似乎更简单。...OC传值给JS的代码: // 页面加载完成之后调用 - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *...JS接收OC传值的代码: function payResult(str){ if(str == ‘ture’){ alert(‘登录’); } } OC代码中的payResult()方法是...注意:JS能接收到OC传递的数据,但却不能进行输出,需要进行判断,看接收到的数据是不是某个数据。...再次提醒:这种OC给JS传参数的方式实际就是OC调用JS方法,传的值是JS方法的一个参数。 好了,博客很短,代码很简单,希望帮到那些在找OC传值给JS方法的童鞋们。
一、前言 近日,有朋友问我关于WKWebView与JS的交互问题,可我之前一直使用的是UIWebView,也不曾做过WKWebView的交互啊!...接下来大家一块学习下WKWebView是怎么实现原生代码和JS交互的。...三、WKWebView的代理方法 /*!...-> Void) 五、WKWebView与JS的交互使用 首页创建html文件,代码如下: <meta charset...修改节点的内容 let js = "document.getElementsByTagName('h2')[0].innerText = '这是一个iOS写入的方法'"; //将js注入到网页中 6、js
创建WKWebView lazy var webView: WKWebView = { // 创建WKPreferences let preferences = WKPreferences...(self, name: "callbackHandler") // 创建WKWebView var webView = WKWebView(frame: self.view.frame...WKWebView调用JS: func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)...JS调用WKWebView: func userContentController(_ userContentController: WKUserContentController, didReceive...文件 let filePath = Bundle.main.path(forResource: path, ofType: "js") // js文件内容 var script:
回调 OC 代码块 1.3 异常收集 2、`WKWebView` OC 与 JS 交互 2.1 `WKUIDelegate` 协议 2.2 OC 调用 JS 函数 2.3 JS 调用 OC 2.3.1...与 OC 交互 UIWebView 在 iOS12 中已经被废弃,同时WKWebView在iOS8中已经出现。...OC 与 JS 交互 WKWebView 初始化: // 配置类 WKWebViewConfiguration *configuration = [[WKWebViewConfiguration...回来的值 NSLog(@"%@----%@",result, error); }]; } 2.3 JS 调用 OC WKWebView 中 JS 调用 OC 函数有两种实现方式.../WKWebView_jsCallOC:/helloword/js"> WK 中调用OC (不使用第三方) OC
WKWebView 适用于iOS8之后的系统 引用 #import 1.OC调用JS NSString *jsmethod = [NSString stringWithFormat...:@"mymethd(\"%@\")",data]; //data(NSDate)为要传给js的数据 [self.wkWebView evaluateJavaScript:jsmethod...completionHandler:^(id _Nullable result, NSError * _Nullable error) { // result js返回值 }];...2.JS调用OC (1)遵循代理 @interface SharecgiteViewController ()...交互,在页面推出的时候,调用 WKUserContentController *controller = self.wkWebView.configuration.userContentController
示例Demo:WKWebView的使用 本文将从以下几方面介绍WKWebView: 1、WKWebView涉及的一些类 2、WKWebView涉及的代理方法 3、网页内容加载进度条的实现 4、JS...和OC的交互 5、本地HTML文件的实现 一、WKWebView涉及的一些类 WKWebView:网页的渲染与展示 注意: #import //初始化...传出的参数体 NSDictionary * parameter = message.body; //JS调用OC if([message.name isEqualToString...和OC的交互 JS调用OC 这个实现主要是依靠WKScriptMessageHandler协议类和WKUserContentController两个类:WKUserContentController对象负责注册...OC调用JS //OC调用JS changeColor()是JS方法名,completionHandler是异步回调block NSString *jsString = [NSString
1.OC与JS交互之UIWebView 创建一个UIWebView 并加载 _webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 20,...调用OC 一,js里面直接调用方法 方法1 ?...方法就行了 //OC调用JS 方法1 ?...调用JS的时候给JS传的参数 [function callWithArguments:@[a,b,c]]; 2.OC与JS交互之WKWebView 创建一个WKWebView 并加载 self.webView...,array.firstObject,array.lastObject]; [self showMsg:info]; } } //OC 调用JS //方法 setName [webView
相比UIWebView,WKWebView做了如下优化: WKWebView更多的支持HTML5的特性 WKWebView更快,占用内存可能只有UIWebView的1/3 ~ 1/4 WKWebView...执行OC代码、OC调取JS代码。...JS执行OC代码 JS是不能执行OC代码的,但是可以变相的执行,JS可以将要执行的操作封装到网络请求里面,然后OC拦截这个请求,获取URL里面的字符串解析即可。...调取JS代码 OC调取JS用到了WebView的一个方法stringByEvaluatingJavaScriptFromString。...:(WKNavigation *)navigation; WKUIDelegate常用代理 /* 输入框,页面中有调用JS的 prompt 方法就会调用该方法 */ - (void)webView:(WKWebView
一、WKWebView的使用: 1、初始化 webView初始化:WKPreferences, WKUserContentController -> WKWebViewConfiguration ->... WKWebView 这里添加了三个代理,代理方法会在下面实现。...decisionHandler(.allow) // .allow or .calcel } // MARK: - 服务器重定向 func webView(_ webView: WKWebView...didReceiveServerRedirectForProvisionalNavigation") } // MARK: - 加载完成 func webView(_ webView: WKWebView...交互了: // MARK: - 加载完成 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)
使用WKWebView的时候,如果想要实现JS调用OC方法,除了拦截URL之外,还有一种简单的方式。那就是利用WKWebView的新特性MessageHandler来实现JS调用原生方法。...WKScriptMessageHandler是因为我们要处理JS调用OC方法的请求。...因为我们给每一个OC 方法取了一个name,那么我们就可以根据name 来区分执行不同的方法。body 中存着JS 要给OC 传的参数。...调用JS 这里使用WKWebView 实现OC 调用JS方法跟上一篇是一样的,还是利用 - evaluateJavaScript:completionHandler:。...地址:JS_OC_MessageHandler
很久之前用的互相调用的方法,今天要分享下,故记录下 Objective-C,通常写作ObjC或OC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。...调oc 网页中的点击方法可以调起原生页面 /** 拦截URL js调用oc @param webView @param request @param navigationType @return...onclick="did();">google function did() { window.location.href = 'jsToOC:success'; } 3.oc...调js 原生调用js方法,也可把参数传递给js /** 返回附件参数的代理 @param array */ - (void)didBackButtonWithArray:(NSMutableArray...]; } js中写法 function cacheAttachMentInfo(ssss, yyy) { alert(ssss); }
看网上关于它的博客也是有许多的了,从各个方面总结一下这个WKWebView看网上说它主要是为了和JS做好交互产生的,我们也会相应的尝试一下。就先从它基本的说起!...一:和UIWebView相比它的不同处 1:和JS更好的做交互,也支持H5的一些新特性 2:加载进度条(下面会演示) 3:性能高,加载变得更快更可靠 二:从加载一张网页开始 1:使用这个WKWebView...2.JS端调用alert时所传的数据可以通过message,打印message信息读取出JS端给你的信息。...// JS端调用alert时所传的数据可以通过message,打印message信息读取出JS端给你的信息。...// 在原生得到结果后,需要回调给JS,通过completionHandler 回调给JS // completionHandler 回调的参数和返回值都是空 -(void)webView:(WKWebView
前言 由于目前UIWebView 已经被抛弃了,因此推荐使用WKWebView的WKScriptMessageHandler实现iOS与JS交互 WKWebView是Apple在iOS8推出的Webkit...通过WKWebView的-evaluateJavaScript:completionHandler:方法来实现 WKWebView的-evaluateJavaScript:completionHandler...:方法可以执行JS代码。...但只有在整个webView加载完成之后调用此方法才会有响应 2.1 执行JS iOS使用WKWebView的-evaluateJavaScript:completionHandler:方法执行拼接好的JS...WKWebView在每次加载请求完成后会调用此方法 (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation
然后点击下一页的按钮 通过js的响应显示另一个网页 最后通过下一页的按钮可以返回到首页。 本文仅仅是h5跟ios 的交互的入门 所以没有做细致的描述。...但是ios8之后 苹果推出了 wkWebview 比uiwebview 占用内存更小,运行速度更快,现在献上 wkwebview的使用方法,供大家参考。...最近发现了wkwebview 这个是ios8之后出来的,就在#import 这个类里边就包含了这个wkwebview这个类,wkwebview继承于uiview 特点...代码 3.运行 oc代码: // // ViewController.m // OC与JS交互之WKWebView // // Created by user on 16/8/18. //...WKUserContentController *userCC = config.userContentController; //JS调用OC 添加处理脚本 [userCC addScriptMessageHandler
iOS开发免不了要与UIWebView打交道,然后就要涉及到JS与原生OC交互,今天总结一下JS与原生OC交互的两种方式。...因此JS与原生OC交互也变得简单了许多。...iOS下JS与OC互相调用(一)--UIWebView 拦截URL iOS下JS与OC互相调用(二)--WKWebView 拦截URL iOS下JS与OC互相调用(三)--MessageHandler...iOS下JS与OC互相调用(四)--JavaScriptCore iOS下JS与OC互相调用(五)--UIWebView + WebViewJavascriptBridge iOS下JS与OC互相调用...(六)--WKWebView + WebViewJavascriptBridge iOS下JS与OC互相调用(七)--Cordova 基础 iOS下JS与OC互相调用(八)--Cordova详解+实战
2、代码操作展示 因为该系列主要是JS与OC互调,所以主要介绍如何用JavaScriptCore实现JS与OC互调。 2.1 创建UIWebView,并加载本地HTML。...2.3 OC调用JS方法 OC调用JS方法就有多种方式了。首先介绍使用JavaScriptCore框架的方式。...先把JS与OC互调部分的介绍完了,这里再补充一些关于JavaScriptCore的相关知识。 在OC中如何往JS环境中添加一个变量,便于后续在JS中使用呢?...而且,WKWebView中有OC 和JS交互的方式,更easy 、更简洁,因此也用不着使用JavaScriptCore。...WKWebView中如何实现OC与JS交互可以看前面这篇文章:iOS下JS与OC互相调用(三)--MessageHandler UIWebView利用JavaScriptCore来实现交互的示例工程:JS_OC_JavaScriptCore
2,WKWebView拥有与Safari中相同的Nitro JavaScript引擎,大大提高了页面JS执行速度;但是UIWebView不支持Nitro JavaScript引擎,所以加载较慢。...5,WKWebView可以和JS直接互调函数,交互更方便;而UIWebView则需要依靠WebViewJavaScriptBridge第三方库来协助处理与JS的交互,实现起来较繁琐。...苹果JS字符串,用于OC调用JS方法。 实例方法 - goBack。导航到后退列表的后退项中。 - goForward。导航到后退列表的前进项中。 - reload。重新加载当前页面。...:(WKFrameInfo *)frame completionHandler:(void (^)(void))completionHandler { //这里展示了如何使用OC原生来展示JS的警告弹窗...我们可以通过JSCore或者JSBridge来在native中执行JS代码,并且在JS中去回调Native的相关函数。 现在很火热的跨平台以及热修复技术,都是基于JS与Native通信来实现的。
WKWebView API WKWebView的头文件声明: // webview 配置,具体看下面 @property (nonatomic, readonly, copy) WKWebViewConfiguration...:(WKUserScript *)userScript; // 移除所有注入的JS - (void)removeAllUserScripts; // 添加scriptMessageHandler...WKUserContentController是用于与JS交互的类,而所注入的JS是WKUserScript对象。...它的所有属性和方法如下: // JS源代码 @property (nonatomic, readonly, copy) NSString *source; // JS注入时间 @property (...*)webView NS_AVAILABLE(10_11, 9_0); // 调用JS的alert()方法 - (void)webView:(WKWebView *)webView runJavaScriptAlertPanelWithMessage
领取专属 10元无门槛券
手把手带您无忧上云