cordova - 在在线网站中使用phonegap代码

标签 cordova twitter-bootstrap

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

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

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

  • 如果应用程序启动,它会检查互联网连接,没有连接?从缓存加载。否则只显示网站。 HTML5 缓存 list 最佳选择?玩过它,但我只想在没有互联网连接的情况下从缓存加载。到目前为止,这似乎是不可能的..?
  • 如果要提交某些表格,请再次检查是否有互联网连接,没有互联网连接?只是一个警告:“没有互联网连接!”并且不提交,以便表单仍被填写,就像用户刚才所做的那样。点击/提交 => 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 文件,它不会对普通访问者执行任何操作,但是如果使用该应用程序并且该网站是通过 Webview 从 PhoneGap 应用程序加载的,那么它可以工作吗?

请您对这一切发表意见!

谢谢!

最佳答案

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

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

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

希望这会有所帮助!

关于cordova - 在在线网站中使用phonegap代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12918728/

相关文章:

html - Bootstrap img-rounded with .col 类不起作用

java - 执行 phonegap 命令 cordova build 时出错

ios - Ngbdropdown 单击事件不适用于 ios phonegap,角度 8 运行 cordova

html - ruby on rails - 部分 CSS

javascript - "On shown"手动使用 Bootstrap 模式时的事件

javascript - 我的 jquery 脚本从不执行,我认为这是类选择器的问题

android - Intel XDK Crosswalk 构建中的 cordova.file

git - INTEL-XDK 和源代码/版本控制 - 它是否受支持?

vue.js - Vue 路由器和 Cordova (Vue.js)

twitter-bootstrap - 边距或填充 Bootstrap 菜单