javascript - PhoneGap : Detect if running on desktop browser

标签 javascript cordova

我正在开发一个使用 PhoneGap:Build 的网络应用程序,并希望为“桌面”和移动版本提供一个代码库。我希望能够检测 PhoneGap 通话是否有效(即用户是否使用支持 PhoneGap 的移动设备)。

我已经搜索过并且无法相信没有简单的方法可以做到这一点。许多人提出了建议;

这些都不起作用,除非您从应用程序的桌面版本中删除 PhoneGap Javascript 文件,这违背了我拥有一个代码库的目标。

到目前为止,我想出的唯一解决方案是浏览器/用户代理嗅探,但这至少可以说不够稳健。欢迎任何更好的解决方案!

编辑:稍微好一点的解决方案是在短暂的超时后尝试调用 PhoneGap 函数 - 如果它不起作用,则假设用户使用的是桌面网络浏览器。

最佳答案

我使用这段代码:

if (navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|IEMobile)/)) {
  document.addEventListener("deviceready", onDeviceReady, false);
} else {
  onDeviceReady(); //this is the browser
}

更新

还有许多其他方法可以检测 phonegap 是否在浏览器上运行,这是另一个不错的选择:

var app = document.URL.indexOf( 'http://' ) === -1 && document.URL.indexOf( 'https://' ) === -1;
if ( app ) {
    // PhoneGap application
} else {
    // Web page
}  

如下所示:Detect between a mobile browser or a PhoneGap application

关于javascript - PhoneGap : Detect if running on desktop browser,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8068052/

相关文章:

android - 为什么我的 phone-gap 应用无法在某些 Android 设备上找到地理定位

javascript - 无法在 ionic 中隐藏启动屏幕

ios - 没有团队选择使用 VS Cordova 工具进行 iOS 构建

javascript - 使用 D3.js 图表创建仪表盘时的疑惑

javascript - AngularJs 格式化极小的十进制数 (1e-8)

javascript - React - 使用 wp_mail 发送电子邮件

javascript - 使用 system.js 导入 socket.io

javascript - Cordova + Angularjs - 为什么从回调内部调用的 $resource(或 $http)给出 404?

javascript - Weinre 是否可以在调试 iOS webview 时设置 javascript 断点

javascript - 如何为简单的 jquery slider 添加多个 slider 支持?