我正在开发的项目将以Chrome App& amp;常规网站。
如果我在Chrome应用中,如何测试/检查我的JS? (即某些功能只能在chrome下工作)
仅供参考,这是我的Chrome应用清单,请注意我在开发者模式下运行此功能(直接来自源代码,尚未打包)
{
"manifest_version": 2,
"name": "Example KIOSK APP",
"version": "1.1",
"icons": {
"16": "images/icon-16.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"app": {
"background": {
"scripts": ["background.js"],
"persistent": true
}
},
"kiosk_enabled": true,
"offline_enabled": true,
"permissions": [
"system.display",
"power",
"webview",
"fileSystem",
"alwaysOnTopWindows",
"system.storage",
"<all_urls>"
]
}
任何建议都非常感谢。
答案 0 :(得分:6)
原来问题是要区分网页中运行的相同代码和(常规)Chrome App窗口内的相同代码。
测试从未暴露在常规网页上的Chrome App API就足够了。一个例子是测试app.runtime
:
if (window.chrome && chrome.app && chrome.app.runtime) {
// Running inside a Chrome App context
} else {
// Either not Chrome, or not as an app window
}
答案 1 :(得分:2)
编辑:这个答案与此特定问题无关,但我想我会留下这个以防万一有人在托管应用中偶然发现这个问题。
我认为通过&#34;运行Chrome App&#34;你的意思是hosted Chrome App。
在这种情况下,只需检查网站代码中的chrome.app.isInstalled
即可。在文档中找到它并不容易,因为它显然被忽略了,但我会将this作为参考。我刚检查过它仍然有效。
所以:
// Website code
if (window.chrome && chrome.app && chrome.app.isInstalled) {
// App is installed
} else if (chrome) {
// In Chrome, but app is not installed: offer inline install?
} else {
// Not in Chrome at all
}