search

Home  >  Q&A  >  body text

android - 有没有成熟的webview:javascript-nativecode交互方案

两个平台的实现完全不一样,很担心以后做向后兼容的时候会是个大坑啊


补充A:混合型app,不是全native code的

PHP中文网PHP中文网2902 days ago369

reply all(4)I'll reply

  • 阿神

    阿神2017-04-10 14:48:31

    PhoneGap 大法好。灵活运用 PhoneGap,可以满足你的一切需求。就算是基本是 native 写的 app 只有一小部分嵌入 HTML,也都可以使用 PhoneGap,提供很多便利。

    有趣的是 PhoneGap 在 iOS、Android、Windows Phone 等等一堆平台上上使用的都是不同的交互实现。

    貌似有的平台是 localhost 架设了个 server,通过 XHR 来交互。有的平台是用浏览器的 window.prompt 交互。还有的平台直接提供了原生交互方案。

    reply
    0
  • 黄舟

    黄舟2017-04-10 14:48:31

    phonegap不行?

    reply
    0
  • 阿神

    阿神2017-04-10 14:48:31

    国内的egret引擎速度是phonegap的30倍

    reply
    0
  • 大家讲道理

    大家讲道理2017-04-10 14:48:31

    1,JS 使用了两种方式来与 Objective-C 通信,一种是使用 XMLHttpRequest 发起请求的方式,NSURLProtocol 的子类来检查每个请求,如果地址是自定义的协议头,拦截之;另一种则是通过设置透明的 iframe 的 src 属性,JS 端创建一个透明的 iframe,设置这个 ifame 的 src 为自定义的协议,而 ifame 的 src 更改时,UIWebView 会先回调其 delegate 的 webView:shouldStartLoadWithRequest:navigationType: 方法。
    2,Objective-C 跟 JS 通信,使用UIWebView 的方法 stringByEvaluatingJavaScriptFromString:。

    reply
    0
  • Cancelreply