Cordova:判断该页面是否在设备应用程序中打开
我正在使用科尔多瓦,并将该网站(远程,不是cordova应用项目中的本地文件)提供给普通浏览器和我手机上的特定应用安装。
现在出现这个问题,如果页面在应用程序内部打开,应该引入cordova脚本,而如果它是在普通浏览器下打开的,则不应该发生。
所以我想知道是否有方法可以判断页面是否在应用程序内部打开?
if (isApp()) {
document.addEventListener('deviceready', () => {
bootstrap();
}
} else {
bootstrap();
}
在这两种情况下,我都会监视UserAgent
,但似乎没有任何重要的信息。
或者如果我可以在cordova项目中添加一些UserAgent
信息?
您可以测试window.cordova
以确定您的应用程序是否在Cordova环境中运行(即cordova.js包含在页面中)
/config.xml
下行添加到/config.xml
。
请参阅:http://cordova.apache.org/docs/en/dev/config_ref/index.html#Android%20Configuration
<preference name="AppendUserAgent" value="Cordova" />
然后,我们可以在很早的时候使用下面的条件来判断:
function isApp() {
return /Cordova/.test(windows.navigator.userAgent);
}
我们可以决定是否引入cordova.js:
let cordovaReady = null;
if (/Cordova/.test(window.navigator.userAgent)) {
cordovaReady = new Promise((resolve, reject) => {
const script = document.createElement('script');
script.type = 'text/javascript';
script.src = '/cordova/cordova.js';
script.onload = () => {
document.addEventListener('deviceready', () => {
resolve();
}, false);
};
document.body.appendChild(script);
});
} else {
cordovaReady = Promise.reject();
}
// We got cordovaReady as a Promise that tells both `inApp()` and `deviceready`.
cordovaReady.then(() => { // done
// windows.cordova is available
}, () => { // fail
// windows.cordova is undefined
console.log('The page is not open under Cordova App.');
}).then(() => { // always
// launch your app
bootstrap();
});
链接地址: http://www.djcxy.com/p/79773.html
上一篇: Cordova: judge whether the page is opened in a device app
下一篇: javascript