我想在触发一个警报时打开一个APP。我可以使用Alarm API触发警报,但我不知道在触发警报时如何打开APP。现在,当警报被触发时,APP会在后台打开。
我有Firefox OS 1.1。
如果您要启动的唯一应用是应用内部的应用,那么您可以使用Open 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 object。
如果你想启动其他应用程序,你必须使用mozApps.mgmt.getAll()来查找其他应用程序(它返回request.result一系列已安装的应用程序 - App objects)。要使用此API,您的应用应该是privileged。有关代码示例,请查看gaia source code,您也可以在github上找到它。
免责声明:在某些情况下,mozApps.mgmt方法需要您的应用程序进行认证,我不能100%确定mozApps.mgmt.getAll()是否会发生这种情况。如果有人知道,请编辑我的答案或发表评论。谢谢!
您还可以使用MozActivity打开另一个应用程序,请参考相机和图库应用程序。在camera.js:775-789中,它使用MozActivity打开Gallery:
var a = new MozActivity({
name: 'browse',
data: {
type: 'photos'
}
});
并且您需要在manifest.webapp中为您的应用添加活动:
"activities": {
"browse": {
"filters": {
"type": "photos"
},
"disposition": "window"
},
...
}
有一个样本可以在应用中打开图库:
你也可以在firefox os手机中打开这个链接,安装并测试它: