1、通过WebMessagePort可以进行消息的发送以及接收。
2、通过runJavaScript、registerJavaScriptProxy的JSBridge技术也能实现消息的收发
这两者有什么区别,数据量的传递上有什么规格,在什么场景下选择什么方案呢?
1、通过WebMessagePort可以进行消息的发送以及接收。
2、通过runJavaScript、registerJavaScriptProxy的JSBridge技术也能实现消息的收发
这两者有什么区别,数据量的传递上有什么规格,在什么场景下选择什么方案呢?
WebView中的双向交互技术:JSBridge与端口通信(WebMessagePort)
区别:
* **JSBridge**:通过注入JavaScript代码或使用原生API,使WebView与原生代码进行通信。常见的技术如`runJavaScript`用于执行JavaScript代码,`registerJavaScriptProxy`用于注册JavaScript对象作为原生代码的代理,实现消息的发送和接收。
* **WebMessagePort**:WebMessagePort 是一种基于消息传递的端口通信技术,允许在 WebView 和原生代码之间建立双向通信通道。通过此通道,可以发送和接收结构化数据。
* **JSBridge**:没有固定的数据格式限制,可以通过字符串、JSON或其他格式传输数据。
* **WebMessagePort**:通常用于传输结构化数据,如消息对象。数据的格式和大小可能受到一些限制,取决于具体的实现和平台。
* **JSBridge**:可能涉及更多的JavaScript解析和执行,可能会有一定的性能开销。
* **WebMessagePort**:基于消息传递的通信方式,通常具有更高的性能和更低的资源消耗。
数据量的传递规格:
选择方案的建议:
总之,选择哪种技术取决于你的具体需求、性能要求以及技术栈的兼容性。
1 回答464 阅读✓ 已解决
1 回答484 阅读
1 回答410 阅读
447 阅读
437 阅读
427 阅读
396 阅读
JSBridge是一种JavaScript与Web客户端之间的通信机制。通过JSBridge,可以在WebView中通过JavaScript代码调用客户端提供的功能,也可以从客户端中调用JavaScript函数。JSBridge可能无法满足复杂的通信需求,这时可以使用端口通信技术来实现更灵活的跨平台通信。
使用runJavaScript与registerJavaScriptProxy的JSBridge技术:
使用WebMessagePort建立端口通信:
参考链接:
应用侧调用前端页面函数
前端页面调用应用侧函数
建立应用侧与前端页面数据通道