在线网站中使用phonegap代码



我有一个基于Twitter Bootstrap的网站。经过一些额外的改进,它在手机和平板电脑上运行得很好。但我想要一个真正的应用程序,不想复制所有内容。首先,仅适用于Android。

我试过的第一件事是AppsGeyser,很简单,但不是我真正想要的。如果用户没有互联网连接,我会看到那些难看的浏览器消息。如果用户按下手机上的菜单按钮,我希望Twitter Bootstrap切换"菜单栏"中的菜单。所以AppsGeyser不是我想要的。而且不支持iOS。

接下来我用PhoneGap做了很多尝试,太棒了!我想要的都是可能的,但最好的解决方案是什么?我想要的是以下我的观点:

  • 如果应用程序启动,它会检查是否有互联网连接,是否没有连接?从缓存加载。否则只显示网站。HTML5缓存清单最佳选择?玩过它,但我只想在没有互联网连接的情况下从缓存加载。到目前为止,这似乎是不可能的
  • 如果要提交一些表格,再次检查是否有互联网连接,是否没有互联网连接?只是一个警告:"没有互联网连接!"并且不要提交,所以表格仍然是填写的,就像用户刚刚做的那样。点击/提交=>对网站的ajax调用=>失败?=>show alert=>返回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应用程序加载的,它会起作用吗?

请你对这一切发表意见!

谢谢!

对我来说,PhoneGap中实现这一点的教科书方法是将应用程序编写为一个独立的JavaScript/HTML/CSS应用程序,该应用程序可以位于设备上,并从服务器端web服务检索数据。这需要协同努力,通常对传统的服务器端web应用程序(似乎就是你所描述的)进行逆向工程并不是特别容易。此模型为您提供了出色的性能,并允许您在不发布更新的情况下更新应用程序内容。

我认为您最好的选择是将应用程序的表示层重写为JavaScript应用程序,该应用程序由从后端派生的API驱动。这应该会给你带来非常出色的性能,如果你正在与其他原生应用程序竞争,这一点很重要。此外,如果你构建得当,它将为你提供离线功能和更多功能(缓存、日志记录等)。

快速的方法(但可能不是我建议的)是在设备上只打包主页(HTML/JS/CSS),然后像往常一样链接到你的网络内容。这不是我以前使用过的方法,但应该非常有效。如果你想构建离线功能,将这种方法与jQuery Mobile等工具包相结合应该会很好地工作(jQM不会为每个sae提供离线功能,但应该为你构建自己的离线处理提供合适的基础)。

我希望这能有所帮助!

最新更新