谷歌浏览器应用程序 - 检查应用程序或常规网站

问题描述:

我正在处理的项目将作为Chrome应用程序&常规网站运行。谷歌浏览器应用程序 - 检查应用程序或常规网站

如果我在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

好的,那么这是一个相当概念性的混乱。这不是托管的应用程序,但现在称为“Chrome应用程序”。但是Chrome应用从概念上将其所有资源捆绑在一起;你将如何运行与网站相同的代码? ''? – Xan 2014-09-30 10:33:07

+0

@Xan - app是用AngularJS编写的。例如,我将使用'ng-switch-when'显示extranal站点,否则使用Chrome浏览器App的'webview'和普通'iFrames'。因此,我需要一个检查,以确保我在应用程序或只是一个浏览器。 – Iladarsda 2014-09-30 10:35:22

+0

重新说明:如果您的应用程序代码完全运行(background.js,您创建的窗口),那么您就在一个应用程序中。并且您希望将“我是来自Chrome应用程序”的信息传递给“”内的页面。正确?如果是,请编辑该问题以澄清它。 – Xan 2014-09-30 10:36:54

原来指在网页中和(常规)Chrome App窗口中运行相同的代码来区分的问题。

测试从不暴露于常规页面的Chrome应用程序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 
} 

编辑:这个答案结果与这个特定的问题没有关系,但我想我会离开这个以防有人用托管的应用程序绊倒这个问题。

我假设通过“作为Chrome应用运行”,您的意思是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 
} 
+0

有趣的是,chrome.app.isInstalled不知道托管是直接从源代码运行(开发人员模式) – Iladarsda 2014-09-30 10:26:47

+0

什么是你的清单,你可以编辑你的问题添加它? – Xan 2014-09-30 10:27:13

+0

是的,给我一分钟 – Iladarsda 2014-09-30 10:28:40