我正在尝试使用带有cordova应用程序的webintents,以便能够将其他应用程序的图像发送给我的。
我正在使用cordova 5.1.1并将以下插件添加到我的android平台项目中:
com.virtualartifacts.webintent 1.0.0 "WebIntent"
cordova-plugin-camera 1.1.0 "Camera"
cordova-plugin-console 1.0.0 "Console"
cordova-plugin-device 1.0.0 "Device"
cordova-plugin-file 2.0.0 "File"
cordova-plugin-file-transfer 1.1.0 "File Transfer"
cordova-plugin-whitelist 1.0.0 "Whitelist"
项目的index.html文件如下所示:
<!DOCTYPE html>
<html>
<head>
<title>WebIntent Test</title>
<meta http-equiv="Content-Security-Policy" content="default-src *; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' 'unsafe-eval'">
<script src="cordova.js"></script>
<script src="js/webintent.js"></script>
<script>
function init() {
document.addEventListener("deviceready",deviceReady,false);
}
function deviceReady() {
console.log("App started. Device ready");
window.plugins.webintent.getExtra(window.plugins.webintent.EXTRA_STREAM,
function(data) {
console.log(data); // which never gets called
}, function(e) {
console.log(e);
// I simply get the message "Error"
});
}
</script>
</head>
<body onload="init()">
<h1>Demo WebIntent</h1>
</body>
</html>
所以这里没什么特别的。 在搜索网络一段时间之后,我发现了一些关于webintent插件的信息(如上所述here on SO。所以我找到了修补版本并仔细检查了正确的代码是否在WebIntent.java文件中,即。
我还在AndroidManifest.xml文件中添加了intent-filter标签,如下所示:
<intent-filter>
<action android:name="android.intent.action.SEND" />
<data android:mimeType="image/*" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
当我在设备上安装应用程序并尝试共享图像时,我的应用程序显示在能够处理此共享的应用程序列表中,并且我还获得了“应用程序启动...”文本,因此我知道它被召唤。
但无论我尝试什么样的图像,我总是到达getExtra方法的“错误”部分,我的console.log只显示“错误”。通过GapDebug直接在设备上进行调试。
我有什么遗漏或有任何想法让我的应用程序从其他应用程序获取图像吗?
提前致谢!
答案 0 :(得分:0)
Cordova插件中存在一个错误,请使用此分支
https://github.com/florentvaldelievre/virtualartifacts-webintent
所以只需删除旧的
cordova plugin rm com.virtualartifacts.webintent
并添加新的
cordova插件添加https://github.com/florentvaldelievre/virtualartifacts-webIntent.git
应该是它,虽然我不需要运行js \ webintent.js来使它工作。
这在选择单个图像时起作用,流的数组似乎还没有工作。