bertzhang 2019-11-03
hybrid本质:
在原生app中,使用webview作为容器,承载一个web页面。
jsbridge:
一座用javascript链接的桥,链接native和web,使native中的代码可以访问web中的javascript代码,使web可以访问native中的原生代码。
http-server、anywhere:
提供访问地址给Android Studio
web调用android原生代码:
window.AndroidJSBridge.function() ---括号可直接传参
web调用ios原生代码:
window.webkit.messageHandles.function --不能直接传参
window.webkit.messageHandles.function.postMessage() --通过postMessage(),括号传参
let obj={ msg:‘window调用ios方法‘}; window.webkit.messageHandles.function.postMessage(obj);//ios回调web方法window.onFunctionIOS=function(str){ alert(str); return "ios回调web方法"}
android与android通讯对比
1、调用方法不同
web调用android可以改变window.AndroidJSBridge 中的AndroidJSBridge,ios只能使用window.webkit.
2、传入参数的方法不同
web调用android可以直接在window.AndroidJSBridge.function()括号中传入参数,ios只能通过window.webkit.messageHandles.function.postMessage()中的postMessage()传入参数.
3、传入参数的类型不同
web调用android只能传入基本数据类型,不能传入引用数据类型,object只能使用JSON.stringify转为字符串后传入,而web调用iso可以传入引用数据类型.
4、接受windos回调不同
android可以直接接受web传入的回调,ios不能直接接受.