常规桌面浏览器中的Phonegap Web应用程序

Gau*_*ain 41 cordova

如果我在phonegap中开发一个Web应用程序,是否可以在浏览器内的常规桌面/笔记本电脑中运行相同的Web应用程序?

Pau*_*ien 29

查看Ripple Chrome插件,在Chrome浏览器中运行PhoneGap应用以及设备类型模拟.

  • 没错,Ripple是一种测试工具.我解释的问题是,是否有可能在Web浏览器中运行PhoneGap应用程序,可能是为了进行测试.由于Ripple模拟PhoneGap设备API,它可以完成这项工作. (9认同)
  • 这是一个测试工具,而不是部署用于Web使用的phonegap应用程序的解决方案. (4认同)

Rem*_*hem 13

是的......没有:你的webapp将在桌面浏览器中运行是的,因为它是由html,css和javascript组成的.手机专用的javascript调用(加速计,指南针,文件等)不会.

基本上,如果你坚持标准是,你将能够相对容易地将你的应用程序移植到大多数浏览器,此时的工作主要是主题工作.


小智 5

DesktopGap使用嵌入式Chrome浏览器而不是IE浏览器.只有Windows版本.


小智 5

不在浏览器中,但Phonegap支持Windows 8,因此如果您在此处编译应用程序

; 你可以在w8上运行你的应用程序,但我没试过.


小智 5

它肯定会在桌面和网络服务器上运行,如果你正确的话.

我使用我的许多应用程序执行此操作,需要注意的事项是:

  • 在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);
Run Code Online (Sandbox Code Playgroud)

并在初始化函数中注册

document.addEventListener("deviceready", onDeviceReady, false);
Run Code Online (Sandbox Code Playgroud)

除此之外,我使用原始函数来分配我可以参考的变量"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;
},
Run Code Online (Sandbox Code Playgroud)

不是很漂亮,但希望这会有所帮助.