Firefox OS:如何在代码中启动APP

问题描述 投票:0回答:2

我想在触发一个警报时打开一个APP。我可以使用Alarm API触发警报,但我不知道在触发警报时如何打开APP。现在,当警报被触发时,APP会在后台打开。

我有Firefox OS 1.1。

firefox-os
2个回答
2
投票

如果您要启动的唯一应用是应用内部的应用,那么您可以使用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()是否会发生这种情况。如果有人知道,请编辑我的答案或发表评论。谢谢!


0
投票

您还可以使用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"
  },
  ...
}

有一个样本可以在应用中打开图库:

http://jsfiddle.net/F6aEC/

你也可以在firefox os手机中打开这个链接,安装并测试它:

http://jsfiddle.net/F6aEC/fxos.html

© www.soinside.com 2019 - 2024. All rights reserved.