题
我想在一个警报被解雇时打开一个应用程序。我可以用警报API发射警报,但我不知道在发出警报时如何打开应用程序。现在,当发出警报时,应用程序被打开但在后台。
我有Firefox OS 1.1。
解决方案
如果您要启动的唯一应用程序是您的应用程序,那么您可以使用打开Web Apps API 并写作以下内容:
var request = window.navigator.mozApps.getSelf();
request.onsuccess = function() {
if (request.result) {
setTimeout(function() {
request.result.launch();
}, 10000);
} else {
alert("Called from outside of an app");
}
};
request.onerror = function() {
alert("Error: " + request.error.name);
};
.
上面的例子将在10秒后启动(引入前景)您的应用程序。
Request.Result是一个 app对象它描述了您的应用程序。
如果您想启动其他应用程序,则必须使用 mozapps.mgmt.getall()要查找其他应用程序(它返回为Request.Result已安装的应用程序 - app对象)。要使用此API,您的应用应该是 privileged 一个。对于代码示例,请检查盖亚源代码您可以在 github
免责声明:在某些情况下,Mozapps.mgmt方法需要您的应用程序进行认证,我不是100%确定它是否与mozapps.mgmt.getAll()发生。如果有人知道请编辑我的答案或发表评论。谢谢!
其他提示
您也可以使用 mozactivity 打开另一个应用程序,请参考相机和图库应用程序。在 camera.js:775-789 它使用Mozactivity来开放式画廊:
var a = new MozActivity({
name: 'browse',
data: {
type: 'photos'
}
});
.
,您需要为您的应用程序添加Manifest.WebApp中的Avtivities:
"activities": {
"browse": {
"filters": {
"type": "photos"
},
"disposition": "window"
},
...
}
.
在应用程序中有一个样本到开放的图库:
不隶属于 StackOverflow