转一下自觉的答案先 JS 和 iOS 互调是个很经典的问题,我们先来看下不借助外部框架怎么搞的 不借助外部框架【WebView】 iOS 调用 JS [webView stringByEvaluatingJavaScriptFromString:@"alert('boom shaka laka')"]; 非常的 easy JS 调用 iOS,我比较推崇的是调用一个 url,然后自己定义解析规则的方式。我举个?吧,下面是一段 html 代码, 用户在你的 WebView 上面点了这样一个连接,这个时候会调起 (BOOL)webView:(UIWebView )webView shouldStartLoadWithRequest:(NSURLRequest )request navigationType:(UIWebViewNavigationType)navigationType这个时候你解析下 request.URL 做下判断就ok了。。 不借助外部框架 【WKWebView】 WKWebView 性能更屌,内存更少,但是缓存之类的设置非常的忧伤。。。Cookie 更是诡异 WKWebView 的坑看这里https://github.com/ShingoFukuyama/WKWebViewTips/blob/master/README.md iOS 调用 JS 一样很 easy,这样调用就好了 evaluateJavaScript:script completionHandler:^(id result, NSError *error)JS 调用 iOS 一样的。。找到 url 处理 (void)webView:(WKWebView )webView decidePolicyForNavigationAction:(WKNavigationAction )navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler可以用的轮子 WebViewJavascriptBridgehttps://github.com/marcuswestin/ = =其实我不太喜欢这个轮子。。。用起来太绕了 JSPatchhttps://github.com/bang590/JSPatch这个好像跟问题没有关系。。不过请关注。。神器。 Hybrid App 的坑其实也不多。 --------------如何监听---- 假如 onclick 调用的方法叫 test()在test里面补充一下代码 if(/iphone|ipad/i.test(navigator.userAgent)){ location.href = "your_app://clicked" } 再配合上面的方法,就成功调用了
转一下自觉的答案先
JS 和 iOS 互调是个很经典的问题,我们先来看下不借助外部框架怎么搞的
不借助外部框架【WebView】
iOS 调用 JS
[webView stringByEvaluatingJavaScriptFromString:@"alert('boom shaka laka')"];
非常的 easy
JS 调用 iOS,我比较推崇的是调用一个 url,然后自己定义解析规则的方式。
我举个?吧,下面是一段 html 代码,
用户在你的 WebView 上面点了这样一个连接,这个时候会调起
(BOOL)webView:(UIWebView )webView shouldStartLoadWithRequest:(NSURLRequest )request navigationType:(UIWebViewNavigationType)navigationType
这个时候你解析下 request.URL 做下判断就ok了。。
不借助外部框架 【WKWebView】
WKWebView 性能更屌,内存更少,但是缓存之类的设置非常的忧伤。。。Cookie 更是诡异
WKWebView 的坑看这里
https://github.com/ShingoFukuyama/WKWebViewTips/blob/master/README.md
iOS 调用 JS
一样很 easy,这样调用就好了
evaluateJavaScript:script completionHandler:^(id result, NSError *error)
JS 调用 iOS
一样的。。找到 url 处理
(void)webView:(WKWebView )webView decidePolicyForNavigationAction:(WKNavigationAction )navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler
可以用的轮子
WebViewJavascriptBridge
https://github.com/marcuswestin/
= =其实我不太喜欢这个轮子。。。用起来太绕了
JSPatch
https://github.com/bang590/JSPatch
这个好像跟问题没有关系。。不过请关注。。神器。
Hybrid App 的坑其实也不多。
--------------如何监听----
假如 onclick 调用的方法叫 test()
在test里面补充一下代码
再配合上面的方法,就成功调用了