WebViewJavascriptBridge初识
来源:互联网 发布:洛克王国手机辅助软件 编辑:程序博客网 时间:2024/04/29 23:46
摘要: 网上关于原生和JS的调用的介绍很多,github上使用方法介绍的很清晰,本文只是对其整理,方便以后查看。
1、WebViewJavascriptBridge资源 github代码资源
原理:
2、使用Usage
2.1 导入头文件
import "WebViewJavascriptBridge.h// 声明变量@property WebViewJavascriptBridge* bridge;
2.2 将创建的webview 添加桥接
self.bridge = [WebViewJavascriptBridge bridgeForWebView:webView];
2.3 原生
registerHandler~~~原生处理
callHandler~~~JS处理
原生响应JS调用 和 原生调用JS
// 原生响应JS:原生注册testObjcCallback方法,当JS被触发时,原生可以响应并处理;[self.bridge registerHandler:@"testObjcCallback" handler:^(id data, WVJBResponseCallback responseCallback){ NSLog(@"testObjcCallback called: %@", data); responseCallback(data);}];// 原生调用JS: 当原生被触发时,原生调用testJavascriptHandler,JS可以响应并处理[self.bridge callHandler:@"testJavascriptHandler" data:nil responseCallback:^(id responseData){ NSLog(@"testJavascriptHandler responded: %@", responseData);}];
2.4 JS处理
2.4.1 将下面一段代码Copy到你的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 = 'http://__bridge_loaded__'; document.documentElement.appendChild(WVJBIframe); setTimeout(function() { document.documentElement.removeChild(WVJBIframe) }, 0)}
2.4.2 最后, JS 中实现 setupWebViewJavascriptBridge
方法,并且用桥接去注册方法和实现ObjC方法响应
setupWebViewJavascriptBridge(function(bridge) { /* Initialize your app here */ // JS调用原生: bridge.registerHandler('testObjcCallback', function(data, responseCallback) { console.log("JS testObjcCallback called with:", data) responseCallback(data) }) //JS响应原生调用 :/ bridge.callHandler('testJavascriptHandler', {'key':'value'}, function responseCallback(responseData) { console.log("JS received response:", responseData) })})
3、优缺点
【优】可以实现原生和H5之间的交互
【缺】每次新加方法必须更新原生,不能实现热更新
4、值得看的博客
http://www.cnblogs.com/TheYouth/p/5854467.html
0 0
- WebViewJavascriptBridge初识
- WebViewJavascriptBridge
- WebViewJavascriptBridge
- WebViewJavascriptBridge
- UIWebView---WebViewJavascriptBridge
- WebViewJavascriptBridge使用
- WebViewJavascriptBridge使用
- WebViewJavascriptBridge使用
- WebViewJavascriptBridge 解析
- 关于WebViewJavascriptBridge
- WebViewJavascriptBridge学习
- WebViewJavascriptBridge使用
- WebViewJavascriptBridge解析
- WebViewJavascriptBridge使用
- WebViewJavascriptBridge解析
- WebViewJavascriptBridge 源码
- WebViewJavascriptBridge 原理分析
- WebViewJavascriptBridge使用说明(IOS)
- tomcat org.apache.catalina.LifecycleException: Failed to start component
- Unity优化之ScrollRect
- 深度学习2016主要进展
- C++基础 函数
- 在Ubuntu上安装Python版MXNet
- WebViewJavascriptBridge初识
- FastDFS搭建及java整合代码
- 代码调试
- Oracle基本语法查询语句
- Android中的一个小特效,从圆变成纸飞机
- HDU 5996 dingyeye loves stone(Nim 变形)
- Leetcode 412 Fizz Buzz
- 动态规划 计算二项式系数
- double dqn report