Open Gaubee opened 5 days ago
如果还要加上HarmonyOS
的话,这两个方案好像也只能考虑 quickjs 了吧。
HarmonyOS
好像也是用的iOS
那套使用postMessage
的方式来通讯
如果还要加上
HarmonyOS
的话,这两个方案好像也只能考虑 quickjs 了吧。HarmonyOS
好像也是用的iOS
那套使用postMessage
的方式来通讯
HarmonyOS 的 WebView 有 WebMessagePort。那就意味着能跟 web-worker 直接通讯,所以性能也能跟 android 是同个级别的。
使用非webview引擎的话,需要额外开发一个调试器或者适配标准调试协议。 quickjs的话,应该有人给它做了调试能力吧?
使用非webview引擎的话,需要额外开发一个调试器或者适配标准调试协议。 quickjs的话,应该有人给它做了调试能力吧?
是不是可以使用 Meta 开发的 flipper
之前说过的那个 webf
他们好像使用的微软的 DAP 来做的:Debugger Design,里面用了这个vscode-js-debug
这个升级是不是还是没法改变iOS
只能使用 webkit.messageHandlers 来传递 js -> native 消息,如果是这样,好像iOS效率还是很难提升
这个升级是不是还是没法改变
iOS
只能使用 webkit.messageHandlers 来传递 js -> native 消息,如果是这样,好像iOS效率还是很难提升
用quickjs可以解决这个问题呀。
我刚才试用了 quickjs-kt ,感觉不大好用,它暴露出来的接口不完善,只能满足一些简单的需求,或者需要有一些妥协。
比方说我想在 Set.prototype 上扩展原生对象,quickjs-c 是可以有原生的接口做到的:在native侧有对应的 JSObject 可以直接操作属性。 但是在 quickjs-kt 上,只能先定义一个全局函数,然后通过js代码来讲这个函数绑定到 JSObject上。而且这个函数的参数和返回值都是有限制的,因为它的互操作性是依靠序列化反序列化,会有大量的性能损失。
所以可能得用rust库来解决需求,比如 rquickjs 但是我们还未用rust库与kotlin之间做非常频繁的互操作、内存交换,不确定会有什么问题。
这些绑定的quickjs都不是最新的了,现在最新的quickjs仓库地址
没看到有rust相关的绑定来绑定这个最新的quickjs,基本上大家绑定的都还是原先的那个,这个新的是quickjs的重新出发,看readme说会合并这两个
所以对于quickjs,我们直接面向c来做编程可能是最好的?(理论上可以用上ziglang )
该提案主要目的是解决当下IOS平台上,js-process与native的通讯性能低下的问题。
可选技术方案: