我正在编写移动应用程序,它将允许在外部服务器上上传图像(通过共享活动),但也可以设置为来自外部服务的壁纸图像,或者只是社交网络共享相同的图像。
在我的应用程序中,我定义了共享和挑选活动(挑选以向其他应用程序提供图片,以及共享-在外部服务上上传)。
然而,在我自己宣布"分享"活动后,我无法将图片分享给其他应用程序。
我有以下代码:
$('#sharePicture').click(function() {
var activity = new MozActivity({
name: "share",
data: {
type: ["image/png", "image/jpg", "image/jpeg", "image/gif", "image/bmp"],
}
});
});
我希望它能显示web活动的菜单,以选择执行共享活动的应用程序。
不幸的是,没有发生这样的事情,而我得到的却是一个"share-activity.html"页面的内容。
我想这是因为我在应用程序中声明了"共享"活动的处理程序(这是https://picup.it托管平台)。然而,由于某种原因,我没有从自己的应用程序中获得网络活动菜单,更糟糕的是,执行共享活动,这造成了恶性循环。
"activities": {
"share": {
"href": "./share-activity.html",
"disposition": "inline",
"filters": {
"type": ["image/*","image/jpeg","image/png"]
},
"returnValue": false
},
"pick": {
"href": "./pick-activity.html",
"disposition": "inline",
"filters": {
"type": ["image/*","image/jpeg","image/png"]
},
"returnValue": true
}
},
如何正确定义"share activity"的句柄,以及如何正确使用将共享委派给外部应用程序?现在它们重叠了。
我已经上传了一个示例应用程序,它展示了这种未被描述的行为:https://github.com/bluszcz/webactivity-bug-993321
为什么要为所有图像类型设置过滤器,并且之后需要特定的格式?第一个"图像/*"涵盖了所有格式。我为imgur找到了这个示例应用程序https://github.com/soapdog/firefoxos-sample-app-image-uploader,清单和你的一样。你确定模拟器中的更新吗?