我有一个基于 Twitter Bootstrap 的网站。通过一些额外的改进,它在手机和平板电脑上运行良好。但我想要一个真正的应用程序,并且不想复制所有内容。首先,仅适用于 Android。
我尝试的第一件事是 AppsGeyser,很简单,但不是我真正想要的。如果用户没有互联网连接,我会看到那些丑陋的浏览器消息。如果用户按下他手机上的菜单按钮,我想要来自 Twitter Bootstrap 的“菜单栏”的菜单切换。所以 AppsGeyser 不是我想要的。并且没有 iOS 支持。
接下来我用PhoneGap做了很多尝试,太棒了!我想要的一切都是可能的,但是最好的解决方案是什么?我想要的是以下我的意见:
- 如果应用程序启动它会检查互联网连接,没有连接?从缓存加载。否则只显示网站。HTML5 缓存清单的最佳选择?玩过它,但如果没有互联网连接,我只想从缓存中加载。到目前为止,这似乎是不可能的..?
- 如果要提交一些表格,再次检查是否有互联网连接,没有互联网连接?只是一个警告:“没有互联网连接!” 并且不要提交,所以表单仍然填写,就像用户刚刚做的那样。点击/提交 => 对网站的 ajax 调用 => 失败?=> 显示警报 => 返回 false,因此不会提交表单。最佳选择?
- 我想要的最后一件事,就像我之前说过的那样,当用户按下手机上的菜单按钮时,它会从 Twitter Bootstrap 切换“菜单栏”。
所以我认为前两件事不是问题,但最后一件事......?我发现了这个:http ://docs.phonegap.com/en/1.0.0/phonegap_events_events.md.html#menubutton 如果网站在“应用程序中”,这没什么大不了的,但我不想要该网站“在应用程序中”。只需从互联网加载它(如果没有互联网连接,则缓存),所以如果我更改某些内容,我不必更改网站和应用程序。只是网站!但是是否可以在“远程”网站中使用 Cordova?如果该网站通过PhoneGap 运行该应用程序,它就会运行,并且可以工作!?
就像,如果我将此代码放在我的网站中:
document.addEventListener("menubutton", onMenuKeyDown, false);
function onMenuKeyDown() {
alert('Menu button pressed!');
}
并包含cordova js文件,它对普通访问者没有任何作用,但是如果使用该应用程序并且该网站是从PhoneGap应用程序加载的,并且带有webview它可以工作吗?
请你对这一切的意见!
谢谢!