在普通桌面浏览器中的Phonegapnetworking应用程序
如果我在phonegap中开发一个web应用程序,是否可以使相同的web应用程序在浏览器内的常规桌面/便携式计算机上运行?
查看Ripple Chrome插件 ,在Chrome浏览器中运行PhoneGap应用程序以及设备types模拟。
是的,没有:你的web应用程序将运行在桌面浏览器是的,因为它是由HTML,CSS和JavaScript。 phonegap特定的JavaScript调用(加速度计,指南针,文件等)不会。
基本上,如果你坚持标准的是,你将能够相对容易地将你的应用程序移植到大多数浏览器,在这一点上的工作主要是主题的工作。
DesktopGap使用embedded式Chrome浏览器而不是IE浏览器。 只有Windows版本。
不是在浏览器,但Phonegap有Windows 8的支持,所以如果你编译你的应用程序在这里
; 你可以运行你的应用程序只是在W8,但我没有尝试。
它肯定会运行在桌面上和networking服务器,无论如何,如果你做对了。
我用我的许多应用程序来做这件事,注意事项是:
- PhoneGap允许使用CORS,但不能在桌面浏览器上使用
- Cordova / PhoneGap API将无法正常工作,如果您尝试调用它们,可能会引发错误
好的做法是将你的设备特定的事件监听器等封装在onDeviceReady函数中,如下所示:
onDeviceReady: function() { // Register the device event listeners document.addEventListener("backbutton", function (e) { console.log("default prevented"); e.preventDefault(); }, false ); document.addEventListener("resume", onDeviceResume, false);
并在初始化函数中注册
document.addEventListener("deviceready", onDeviceReady, false);
除此之外,我使用原始函数来分配variables“phonegap”,如果我需要知道我们在哪个平台上,或者如果我们是桌面的(在这种情况下它将是错误的),我可以参考它。
isPhoneGap: function() { var is = false; var agent = navigator.userAgent.toLowerCase(); var path = window.location.href; if (path.indexOf("file://") != -1) { if (agent.indexOf("android") != -1) { is = "android"; } else if (agent.indexOf("iphone") != -1 || agent.indexOf("ipad") != -1 || agent.indexOf("ipod") != -1) { is = "ios"; } else if (agent.indexOf("iemobile") != -1) { is = "wp"; } } return is; },
不是超级漂亮,但希望这有助于。
MacGap是一个相当活跃的项目,似乎很好地支持API。
唉,它只适用于Mac OSX,但可能作为一个很好的起飞点?
现在你可以和Cordova一起使用browser
平台。
您可以使用普通的Cordova CLI命令cordova platform add browser
来安装它
然后安装标准的Cordova插件,它们提供与设备上相同的编程接口。 例如,看看https://github.com/apache/cordova-plugin-camera/#supported-platforms 。 Howether支持不与设备100%兼容,但Cordova团队尽可能地以浏览器为平台带来兼容的解决scheme
我很惊讶,我发现没有简单的方法来在桌面浏览器中testing应用程序,所以我开始了一个GitHub项目 ,让这个过程变得简单。 目前只有有限数量的插件被模拟,但我会添加更多,希望贡献将有助于更快地完成其他插件。 还计划支持select不同的屏幕尺寸和其他自定义。 希望能帮助到你。
如果您的phonegap应用程序不依赖于任何本机代码,那么您可以简单地使用创buildWeb应用程序所需的html,css&js文件。 如果您的phonegap应用程序使用任何phonegap插件或phonegap特定的JavaScript调用,那么您只需要决定如何在Web应用程序上实现这些应用程序。
您也可以尝试使用–disable-web-security命令行选项在Chrome中运行您的应用程序。 它可以让你执行一些“移动”操作,如跨域请求等
希望这可以帮助 !
由于手机间隙应用程序是使用JS,HTML和CSS构build的,因此您可以访问这些HTML文件并在浏览器中运行。 但是你的代码可以访问任何设备特定的调用,那么它会抛出错误。
如果您使用Mac,请打开terminal并禁用networking安全
open -a /Applications/Google\ Chrome.app --args --allow-file-access-from-files --disable-web-security
打开你的homepage.html和ENJOY 🙂
正如雷米所说,你写的大部分标准的东西都可以,但是你需要把某些使用相机/加速度计的方法打包,看看你是否在应用程序中。
虽然更好的解决scheme是使用function检测,因为您可以上传图片并在移动网站上使用HTMLinput的相机,但我确定您现在可以在特定版本的Chrome浏览器中访问networking摄像头。
如果你想构build一个适当的通用应用程序,你需要使用大量的function/设备检测,或者有一个核心的产品,并使用像Git子模块来包括和扩展它作为一个PhoneGap应用程序。
没有单一的,简单的,标准化的做法。
试试这个: https : //github.com/icblenke/phonegap-mac
我试过一个样本,它的工作很棒..希望这可以帮助!
它肯定会在桌面上运行,如果你正确的做法。
我用我的许多应用程序来做这件事,但是很好包裹你的设备特定的事件监听器,比如:
onDeviceReady: function() { // Your Code for Device event listner },false);
并初始化该function
document.addEventListener("deviceready", onDeviceReady, false);
有一个工具来运行系统上的任何Android应用程序。 工具名称是'bluestack'它可以在系统上运行任何android应用程序。
在铬中使用纹波模拟器,你可以运行你的phonegap应用程序。
PhoneGap是一个应用程序框架,使您能够使用HTML和JavaScript构build本机安装的应用程序。
思考PhoneGap的最简单方法是100%宽度和100%高度的Web视图容器,带有JavaScript编程接口,允许您访问底层操作系统function。
有关Phonegap的更多详细信息
您可以安装一个Android VM,并在桌面/ Mac / Cisco办公terminal/电话等上运行。 你可能问的是如果你可以有一个单一的代码库。 答案是99%是的。 phonegap(index.html,config)需要一些“额外”文件,但除此之外,您可以将相同的代码部署到这两个地方。 它工作正常。 那么,有“陷阱”,如
H中的谁降低了这个答案? 它其实是less数直接回答他的问题。 他问道:“如果我在手机上开发一个networking应用程序,那么同一个networking应用程序可以在浏览器内的普通台式机/笔记本电脑上运行吗? 我的回答是正确的,因为我已经完成了它的生产和一个拥有近1000家门店,收入超过1亿美元的公司。 你会认识到他们的大部分客户是家喻户晓的名字。 PhoneGap应用程序与WebApp 99%相同。 事实上,完全相同的文件夹被压缩并上载到build.phonegap中,并复制到Web门户。 完全如上所述,您可以使用相同的Web应用程序,它可以在Web浏览器中运行。 顺便说一句,你可以使用相机从HTML / JS和不需要PhoneGap特定的代码。 GPS也一样(尽pipe你需要一些健壮的代码才能使它在许多手机上工作)。 加速度计和其他硬件当然是例外。 但是,呃!
事实上,我的回答是其中只有两个指出了他将要面临的很多问题。 另外,需要指出设备像素的混乱。 你可以使用CSS和百分比布局,然后使用媒体查询为平板电脑,新手机等添加自定义的CSS模块。当然,这会变得混乱。 如果您希望得到更好的支持,最终可以为平板电脑,手机和其他显示屏尺寸制作几乎自定义的屏幕。 然后你学会了制作UI widgets / fragments /什么,并使它们变得聪明。 一个简单的例子是使用jQuery数据表,并在较小的设备上更改列(隐藏较低的信息内容列)。 等改变单选button来select,并在较小的手机上。 那种垃圾。 当然,最终你不得不发明你自己的droplist,或者使用jquery UI等等,因为Android平板电脑实现了html select打击。
- 停止Phonegap IOS中的滚动/反弹
- 当使用phonegap / cordova时,'节点'不被识别为内部或外部命令,可操作程序或batch file
- 为什么我必须把所有的脚本放到jquery mobile的index.html中
- 在jQuery Mobile和PhoneGap中创build模板/持久页眉/页脚模板
- 一起使用JQuery-Mobile / Phonegap的正确方法?
- 错误:ANDROID_HOME未设置,“android”命令不在PATH中。 您必须至less满足以下条件之一。
- 通过Cordova config.xml添加条目到iOS .plist文件
- iOS编译错误:'CDVCommandDelegateImpl'没有可见的@interface声明select器'execute:'
- CordovaResourceApi导入未解决的phonegap