Я пытаюсь использовать webintents с приложением Cordova, чтобы иметь возможность отправлять изображения из другого приложения в мое.
Я использую 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 содержит ошибки (как упоминалось в заголовке здесь на SO. Итак, я нашел исправленную версию и дважды проверил, что правильный код находится в файле WebIntent.java, который есть.
Я также добавил теги фильтра намерений в файл AndroidManifest.xml следующим образом:
<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.
Есть ли что-то, что мне не хватает, или у кого-нибудь есть идея, как заставить мое приложение получать изображения из других приложений для работы?
Заранее спасибо!