这个应用程序已经存在于 Apple App Store 和 Android 市场。这是一个使用大量本机代码的应用程序,不是完全 html5ed 的候选者。
冗长的描述
我想要一个基于 Web 的系列设置页面。其中一些页面将在本地移动设备上运行,而另一些页面将托管在远程服务器上。本机应用程序需要与本地网页通信,以使用 javascript 获取和设置网页中的信息。
例如,WebView/UIWebview 中显示的第一个页面将是本地索引页面。如果远程网站关闭,则索引页面上指向远程页面的链接将显示为灰色。在加载 WebView 时,本机应用程序将需要检测该页面的可达性并将 javascript 发送到页面以使按钮变灰。同样,在本地网页中进行的一些设置更改需要发送回 Native 应用程序进行处理。
简短而甜蜜的需求摘要
- 在 webview 中嵌入远程和本地网页
- Android 和 iOS 的这些网页将相同
- 本地页面使用 JavaScript 从 Native Mobile App 获取数据并将数据发送到 Native Mobile App
潜在的解决途径
A.PhoneGap _
我意识到如果我的应用程序完全是一个网络应用程序,Phonegap 会很好地解决这个问题。从我的阅读来看,Phonegap 似乎并不喜欢嵌入到本地应用程序中进行兼职工作。
什么?你说这很容易,而我被严重误导了?启发我哦,聪明的人。
B.自己动手
我愿意推出自己的解决方案,但是通过 Javascript 从 Webviews 到 Native Apps 获取和设置信息的方法似乎完全不同。比设置更重要(iOS 的虚假 URL,Android 的非常好的 AddJavaScriptInterface)。此外,这条路径似乎会在未来导致严重的维护问题。
说什么?你的天才程序员朋友制作了一个网站,详细描述了这个过程?告诉我更多。
C.第三方图书馆
完美的第 3 方库可以满足我的所有需求(以及更多!)存在吗?救我脱离无知。
决定
在未来,PhoneGap 的“Cleaver”项目似乎将是做到这一点的最佳方式。
由于尚未为 Android 做好准备,目前(2012 年 6 月上旬)编写一次嵌入 HTML 的最佳解决方案似乎是使用虚假 URL 方案从网页与本机应用程序进行通信(两个平台都可以从原生应用程序转到网页时直接在页面上执行JS)。