两个平台的实现完全不一样,很担心以后做向后兼容的时候会是个大坑啊
补充A:混合型app,不是全native code的
阿神2017-04-10 14:48:31
PhoneGap 大法好。灵活运用 PhoneGap,可以满足你的一切需求。就算是基本是 native 写的 app 只有一小部分嵌入 HTML,也都可以使用 PhoneGap,提供很多便利。
有趣的是 PhoneGap 在 iOS、Android、Windows Phone 等等一堆平台上上使用的都是不同的交互实现。
貌似有的平台是 localhost 架设了个 server,通过 XHR 来交互。有的平台是用浏览器的 window.prompt
交互。还有的平台直接提供了原生交互方案。
大家讲道理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:。