gpt4 book ai didi

javascript - 通过 JavaScript 检测应用程序是否在 phonegap 中运行的最有效和可靠的方法

转载 作者:搜寻专家 更新时间:2023-11-01 04:10:37 24 4
gpt4 key购买 nike

用 JavaScript 检测应用程序是在 phonegap 中运行还是在移动/桌面浏览器中运行的最有效和可靠的方法是什么?我试图消除任何阻止我在任何浏览器(桌面或移动设备)中测试/调试我的 phonegap 应用程序的问题,并为我的应用程序创建一个真正通用的代码库。

我打算像这样使用 phonegap 特定调用来构建我的函数:

if (phonegapisrunning) {
// phonegap specific javascript calls here
}
else {
// standard javascript calls here
}

在寻找解决方案时,我遇到了这个线程: PhoneGap: Detect if running on desktop browser .

虽然此线程讨论了这个问题,但我没有看到关于哪种方法最有效/最可靠的明确答案。我应该绑定(bind)到 onDeviceReady() 事件吗?我应该检查 window.device 吗?有没有更有效或更可靠的方法来通过 JavsScript 检查应用程序是否在 phonegap 中运行?

这个线程提到了 Ripple Chrome 插件: Phonegap web app in regular desktop browsers

Ripple 工具看起来可能是一个有值(value)的测试工具。但我正在尝试让我的 phonegap 应用程序在没有插件的情况下在桌面浏览器中运行。

如果确定该应用未在 phonegap 中运行,我将使用用户代理嗅探来确定浏览器是桌面浏览器还是移动浏览器,并在需要时进一步分离任何代码。

最佳答案

我看过很多关于检查用户代理的答案。尽管这些对于比较 在哪个平台上加载页面 很有用,但它们仍然无法区分是在 cordova 应用程序的浏览器 中运行还是在 常规网络浏览器中运行。在对 android cordova javascript 文件进行大量挖掘之后,我发现在 cordova 应用程序中运行时设置了以下变量:

window._cordovaNative

查看 ios cordova javascript,我发现:

window._nativeReady

在您加载任何 cordova javascript 或检查任何用户代理等之前,在您的页面中抛出这些警报,并比较从网络浏览器加载和从获取动态内容的 cordova 应用程序加载的结果:

alert("Android: " + window._cordovaNative);
alert("iOS: " + window._nativeReady);

我猜其他设备的 phonegap 文件有不同的全局变量,但就目前而言,这对我来说非常有用——我希望它对你也有用!

关于javascript - 通过 JavaScript 检测应用程序是否在 phonegap 中运行的最有效和可靠的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11285981/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com