hybrid

Posted uimeigui

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hybrid相关的知识,希望对你有一定的参考价值。

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

 

以上是关于hybrid的主要内容,如果未能解决你的问题,请参考以下文章

前端知识体系-JS相关对移动端和Hybrid开发的理解?

Hybrid APP架构设计

Hybrid APP架构设计思路

在 laravel 5 中集成 hybrid_auth

开源浅谈Hybrid技术的设计与实现第二弹

Blazor Hybrid / MAUI 简介和实战