我在所有Web应用程序都受信任的环境中使用chrome。 必须从localhost加载webapp内容。
我在manifest.json之后的磁盘上:
{
"app": {
"background": {
"scripts": [ "main.js" ]
}
},
"key": "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1pfODEBUGdWWSnyl+T04CSxMnr/s8QKdpkCoqxpnUVoalo/0lp6/N/RfglcfjLSfpQbprjxZuV8YdKw2NmXfXMfTEDp2Mu1hTotroZy9yi6l7bNc2DLkYkzfJ26A+yRmKtY1hgT3UWLhsLyFEvbtdJo4rhTApqTnUbn6C/WyCGwIDAQAB",
"manifest_version": 2,
"permissions": [ "webview"],
"version": "0.1"
}
main.js只是创建一个应用程序窗口,将localhost url作为输入:
chrome.app.runtime.onLaunched.addListener(function() {
chrome.app.window.create('http://localhost/somewebapp', {
id: 'embedder',
bounds: {
width: 1430,
height: 870
}
});
})
我在AppWindowCreateFunction :: RunAsync中修改了也适用于非本地网址:
GURL absolute = GURL(params->url);
if (absolute.has_scheme()) {
//if (extension()->location() == Manifest::COMPONENT) {
if(true){
url = absolute;
} else {
// Show error when url passed isn't local.
error_ = app_window_constants::kInvalidUrlParameter;
return false;
}
}
localhost url中的页面包含webview标记:
<!DOCTYPE html>
<html>
<body>
Web app
<webview id="wv1" style="width:250px; height:200px;" src="http://localhost/page.html"/>
</body>
</html>
观察到的行为:
我希望能够创建webview。 有没有人知道为什么它如此工作以及铬来源负责加载清单所需的资源(在我们的例子中是webview)?
我将不胜感激任何帮助/建议。谢谢!