hybrid

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不能直接接受.

相关推荐