Google chrome extension Chrome PNaCl应用程序内联安装

Google chrome extension Chrome PNaCl应用程序内联安装,google-chrome-extension,google-chrome-app,google-nativeclient,Google Chrome Extension,Google Chrome App,Google Nativeclient,我想分发一个PNaCl应用程序,内联安装,并在不离开当前页面的情况下使用该应用程序。我已经在CWS上发布了该应用程序。该应用程序需要一些用户权限。内联安装工作正常,应用程序出现在Chrome浏览器应用程序部分。但是,我得到了这个错误: “NaCl模块加载失败:无法加载清单url” 当我尝试使用以下方式加载应用程序时: 这是testapp.nmf文件,它位于我上传到开发者仪表板的.zip pkg中 { “计划”:{ “便携式”:{ “pnacl翻译”:{ “url”:“testapp.pexe

我想分发一个PNaCl应用程序,内联安装,并在不离开当前页面的情况下使用该应用程序。我已经在CWS上发布了该应用程序。该应用程序需要一些用户权限。内联安装工作正常,应用程序出现在Chrome浏览器应用程序部分。但是,我得到了这个错误:

“NaCl模块加载失败:无法加载清单url”

当我尝试使用以下方式加载应用程序时:


这是testapp.nmf文件,它位于我上传到开发者仪表板的.zip pkg中

{
“计划”:{
“便携式”:{
“pnacl翻译”:{
“url”:“testapp.pexe”
},
“pnacl调试”:{
“url”:“testapp_unstripped.bc”
}
}
}
}
包文件中的Manifest.json如下所示:

{
“名称”:“testapp”,
“版本”:“0.0.0.2”,
“清单版本”:2,
“说明”:“TCP/UDP测试”,
“脱机_已启用”:true,
“图标”:{
“128”:“icon128.png”
},
“应用程序”:{
“背景”:{
“脚本”:[“background.js”]
}
},
“权限”:[
{
“插座”:[
“tcp侦听:**”,
“tcp连接”,
“解析主机”,
“udp绑定:**”,
“udp发送到:**”
]
}
]
}
HTML页面位于谷歌的blogspot.com上,并已成功验证

观察结果:

  • 您不能在打包的应用程序之外使用套接字API(因为没有其他方法可以获得它们的权限)
  • A基本上是自包含的:它不是与普通浏览器交互的东西,它是一个预设的资源集合,显示在一个单独的窗口中
  • 某个网站仍然可以与应用程序进行通信
似乎您正在尝试同时遵循两个指南,一个是打包应用程序,另一个是web应用程序。PNaCl可以在web应用程序的上下文中工作,只需将pexe和清单放在站点本身上;但您需要原始网络访问,并且只能在打包的应用程序中请求

您完全可以使用内联安装将应用程序添加到用户的机器上,但不能在普通页面中嵌入模块

您的模块只能嵌入应用程序自己的页面中。因此,如果你想显示一些用户界面,你需要将该页面与应用打包在一起,并使用
chrome.app.window.create
显示

如果您确实需要向某个网站公开功能,您可以选择与应用程序的后台页面进行通信


应用程序总是有一个事件页面,即。因此,如果您只是通过动态创建
元素将模块嵌入到该页面中,它可能会失败。但是,如果您使用的是
外部可连接的
方法,您应该能够保持一个端口打开,这将导致页面保持运行。

testapp.nmf中的内容以及它的位置?(通常,您使用类似这样的新信息编辑您的问题)以及该文件在哪里?在你的应用程序中?现场博客?两者都有?好吧,我不明白你想做什么。PNaCl允许您简单地,在CWS中不需要应用程序。如果你把
放在你的网站上,比如说,
http://example.com/awesome/
,它尝试加载
http://example.com/awesome/testapp.nmf
(失败)。最后,您的CWS应用程序清单是什么?您需要什么样的权限?谢谢您的回答Xan。权限呢?在这种情况下,用户是否能够授予权限?我在文档中读到请求权限的内容,这在打包的应用程序中是允许的。