在我们的“Firefox OS – HTML5 应得的平台”系列的第六个视频中(之前的 五个视频已发布在此),我们讨论了 网页活动 如何允许您作为开发人员访问硬件的某些部分,而无需打包您的应用程序。
观看由来自 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.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 模板应用程序 并尝试使用活动和代码
网页活动是一种简单的方法,可以使您的服务器上托管的应用程序更深入地访问硬件,而无需代表用户执行操作。相反,您可以让用户决定如何获取您想要的信息,并专注于在获取数据后如何处理它。
关于 Chris Heilmann
HTML5 和开放网络的倡导者。让我们一起修复它!
7 条评论