iOS关于webView交互使用(包含js)
来源:互联网 发布:开淘宝店对产品的要求 编辑:程序博客网 时间:2024/06/16 15:38
很久没有更新了,加班给加成汪汪了。
关于webView 和 wkWebView 其实太多争议,我也不参与争论,因为再争论也抵不过领导说用什么就用什么。
所以今天给大家来讲解一下它们两个跟js之间的交互
webView
1.截取url
其实用起来很简单,根据业务需求
- (BOOL)webView:(UIWebVie- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationTypew *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{ NSString *requestURL = [[request URL] absoluteString]; if ([requestURL rangeOfString:@"你跟js定义好的字段"].location != NSNotFound){}}
上面的那个方法是最简单 而且最有效的但是不好管理的一个方法,代码不整齐,而且不安全的方法。上面的方法的意思就让js跟商量好,它需要什么你在url后面带,或者它需要什么你在url后面带,然后用上面的这个方法截,然后办事儿。
2.WebViewJavascriptBridge
这个是比较方便,切比较安全可以在里面把你传的字符md5加密之后然后给html让他解密然后做事儿
如果需要js调取oc 那么oc需要写
self.bridge = [WebViewJavascriptBridge bridgeForWebView:_webView webViewDelegate:self handler:^(id data, WVJBResponseCallback responseCallback) { NSLog(@"%@",data); }];//bridge 是你自己定义的bridge [self.bridge registerHandler:@"你们定义的方法名" handler:^(id data, WVJBResponseCallback responseCallback) { }];
js需要写
function setupWebViewJavascriptBridge(callback) { if (window.WebViewJavascriptBridge) { return callback(WebViewJavascriptBridge); } if (window.WVJBCallbacks) { return window.WVJBCallbacks.push(callback); } window.WVJBCallbacks = [callback]; var WVJBIframe = document.createElement('iframe'); WVJBIframe.style.display = 'none'; WVJBIframe.src = 'wvjbscheme://__BRIDGE_LOADED__'; document.documentElement.appendChild(WVJBIframe); setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0) }
阅读全文
0 0
- iOS关于webView交互使用(包含js)
- iOS WebView JS 交互
- iOS webview 和 js 交互
- iOS webView 与js交互
- iOS webView与js交互
- iOS WebView中的JS交互
- 关于webview与JS交互
- 关于在android中使用webview 和js交互
- Android webview使用 webview和js交互
- ios webview与JS的交互
- iOS解析---WebView和js交互原理
- iOS解析---WebView和js交互原理
- iOS 之webView与js交互
- iOS解析---WebView和js交互原理
- iOS webView和JS简单交互处理
- ios中webview与js交互代码
- iOS开发-WebView与JS的交互
- iOS中WebView和JS的交互
- 微信支付---解析微信返回值
- 开源项目
- 关于安防与大数据 不能不说的九个发展趋势
- Android零基础入门第78节:四大组件的纽带——Intent
- angular4学习经验总结1
- iOS关于webView交互使用(包含js)
- 零售大数据分析应用的四个阶段
- 建立本地yum源
- 从远程库克隆
- 关于Toolbar和ActionBar的一些坑
- 利用Fiddler抓取APP数据
- C#反射Assembly 使用说明
- Android开发之蓝牙通信(一)
- Javascript 面向对象编程