网页活动 – Firefox OS:HTML5 应得的平台

在我们的“Firefox OS – HTML5 应得的平台”系列的第六个视频中(之前的 五个视频已发布在此),我们讨论了 网页活动 如何允许您作为开发人员访问硬件的某些部分,而无需打包您的应用程序。

Firefox OS - be the future

观看由来自 Mozilla 的 Chris Heilmann (@codepo8) 和来自 Telefónica Digital/ W3C 的 Daniel Appelquist (@torgo) 主持的视频,了解网页活动的缘由和方法。您可以 在此观看视频

网页活动 是一种在不访问用户硬件的情况下扩展 HTML5 应用程序功能的方法。换句话说,您无需要求用户访问摄像头或手机,而是让您的应用程序请求图像或发起呼叫,然后用户选择最适合此任务的应用程序。对于照片,用户可以选择从图库、壁纸中选择,或使用相机应用程序拍摄新的照片。然后,您将照片作为文件 Blob 返回。代码非常简单

var pick = new MozActivity({
   name: "pick",
   data: {
       type: ["image/png", "image/jpg", "image/jpeg"]
   
}
});

您调用“选择”活动,并通过列出所需的所有 MIME 类型来请求图像。此小脚本将导致运行 Firefox 的 Firefox OS 设备或 Android 设备向用户显示以下对话框

pick dialog

所有活动都有成功和失败处理程序。在这种情况下,您可以在用户成功选择源图像时创建新图像,或在用户不允许您拍照或格式错误时显示警报

pick.onsuccess = function () {

    // Create image and set the returned blob as the src
    var img = document.createElement("img");
    img.src = window.URL.createObjectURL(this.result.blob);

    // Present that image in your app
    var imagePresenter = document.querySelector("#image-presenter");
    imagePresenter.appendChild(img);
};

pick.onerror = function () {

    // If an error occurred or the user canceled the activity
    alert("Can't view the image!");
};

其他网页活动的工作方式类似,例如,要要求用户拨打电话号码,您需要编写以下代码

var call = new MozActivity({
    name: "dial",
    data: {
        number: "+46777888999"
    }
});

这将打开用户已定义为拨打电话的应用程序,并要求拨打电话号码。用户挂断电话后,您将收到一个成功处理程序对象。

网页活动有一些优势

  • 它们允许安全访问硬件 – 而不是要求用户允许另一个应用程序使用相机,您可以将用户引导至他们已经信任的应用程序来完成此操作。
  • 它们允许您的应用程序成为用户设备体验的一部分 – 而不是构建相机界面,您可以将用户引导至他们已经熟悉的相机界面来拍照
  • 您允许应用程序成为设备上的一个生态系统 – 而不是让每个应用程序都做同样的事情,您可以让它们专注于做好一件事
  • 您让用户保持控制 – 他们可以选择从任何他们想要的地方为您提供照片,并可以将应用程序功能的结果存储在他们想要的位置,而不是存储在设备上的另一个数据库中

我们在之前的 介绍网页活动 文章中详细介绍了这个主题。

在 Firefox OS 设备(或模拟器)或运行 Firefox 的 Android 手机上开始使用网页活动的最佳方法是下载 Firefox OS 模板应用程序 并尝试使用活动和代码

Firefox OS Boilerplate App

网页活动是一种简单的方法,可以使您的服务器上托管的应用程序更深入地访问硬件,而无需代表用户执行操作。相反,您可以让用户决定如何获取您想要的信息,并专注于在获取数据后如何处理它。

关于 Chris Heilmann

HTML5 和开放网络的倡导者。让我们一起修复它!

更多 Chris Heilmann 的文章…


7 条评论

  1. Ivan Dejanovic

    我只是想告诉你,在你之前的视频之后,我对访问硬件更有信心了。对于我来说,作为一名开发人员,使用网页活动创建 Web 应用程序要容易得多,比如当我需要一张图片时,我会直接要求用户提供,而不是我自己访问硬件,因为用户可能已经在电脑或手机上有一张照片,并且不想让我使用相机。我有一个关于网页活动的问题,如果这个问题已经被问过并回答过,我表示歉意。用户是否有办法像 Android 一样为特定操作选择默认应用程序(仅使用一次/始终使用)?如果用户希望始终以相同的方式向我的应用程序提供数据,这似乎是一件很方便的事情。提前感谢,并继续保持良好的工作。

    2013 年 8 月 23 日 下午 01:42

  2. Bingo Romnaia

    我和 Ivan Dejanovic 有相同的问题,如果你能回复,那就太感谢了,继续努力。

    2013 年 8 月 25 日 上午 10:01

  3. Robert Nyman [编辑]

    据我所知,目前用户无法为网页活动保存默认操作。不过,随着时间的推移,我认为这种需求是存在的。

    2013 年 8 月 26 日 下午 20:40

  4. felix

    哪个视频可以在 Firefox 中直接播放?

    2013 年 8 月 29 日 下午 14:07

    1. Lennie

      当您访问 http://youtube.com/html5 时,您可以告诉 YouTube 您想要使用 HTML5 视频,例如 WebM/VP8/Vorbis。

      如果您点击视频并在新窗口/标签页中打开它,您将获得 WebM/VP8/Vorbis 视频。

      2013 年 8 月 31 日 上午 04:34

  5. skierpage

    很棒!

    网页活动何时会出现在桌面版 Firefox 中?[选择图像] 和 [撰写邮件] 应该已经在桌面版中工作了,而其他功能在您能够指定实现该功能的 Web 应用程序时是有意义的,就像您现在可以在桌面版 Firefox 中的“首选项”>“应用程序”中指定“使用 Gmail”作为 mailto: 处理程序一样。

    2013 年 9 月 11 日 下午 19:16

    1. Robert Nyman [编辑]

      这是一个很棒的问题!我个人非常希望看到这种情况发生。

      2013 年 9 月 12 日 上午 02:42

本文的评论已关闭。