使用cordova将android gallery中的图片共享到cordova应用程序
我可以在共享界面中添加我的cordova应用程序,但我不知道如何在我的cordova应用程序中添加共享图片 我使用了com.borismus.webintent插件 我正在用DeviceRady调用下面的代码,但运气不好使用cordova将android gallery中的图片共享到cordova应用程序,android,ios,android-intent,cordova,cordova-plugins,Android,Ios,Android Intent,Cordova,Cordova Plugins,我可以在共享界面中添加我的cordova应用程序,但我不知道如何在我的cordova应用程序中添加共享图片 我使用了com.borismus.webintent插件 我正在用DeviceRady调用下面的代码,但运气不好 function startActivity() { alert('start'); window.plugins.webintent.startActivity({ action: window.plugins
function startActivity() {
alert('start');
window.plugins.webintent.startActivity({
action: window.plugins.webintent.ACTION_VIEW,
url: theFile.toURL(),
type: 'application/vnd.android.package-archive'
},
function () { alert('success');},
function () {
alert('Failed to open URL via Android Intent.');
console.log("Failed to open URL via Android Intent. URL: " + theFile.fullPath)
}
);
}
function broadcast() {
window.plugins.webintent.sendBroadcast({
action: 'com.dummybroadcast.action.triggerthing',
extras: {
'option': true
}
}, function (args) {
alert(args);
}, function (args) {
alert(args);
});
}
function getURI() {
window.plugins.webintent.getUri(function (url) {
if (url !== "") {
// url is the url the intent was launched with
alert(url);
}
else {
alert('ddfsdf');
}
});
}
我的要求是在画廊,如果我点击sahre图标,我的应用程序应该会出现,一旦我选择了我的应用程序,我应该能够在我的cordova应用程序中获得该图像
我使用的是cordova 3.4.0,android
我的AndroidManifest.xml是
<application android:hardwareAccelerated="true" android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale" android:label="@string/app_name" android:name="Share" android:theme="@android:style/Theme.Black.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.SEND_MULTIPLE" />
<data android:mimeType="application/vnd.google.panorama360+jpg" />
<data android:mimeType="image/*" />
<data android:mimeType="video/*" />
<data android:mimeType="text/plain" />
</intent-filter>
<intent-filter>
<action android:name="com.creative.share.UNIQUESTRING" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name="IntentTest" android:label="@string/app_name" android:configChanges="orientation|keyboardHidden">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"></action>
<category android:name="android.intent.category.DEFAULT"></category>
<category android:name="android.intent.category.BROWSABLE"></category>
<data android:host="www.youtube.com" android:scheme="http"></data>
</intent-filter>
</activity>
<activity android:name=".BrowserActivity" android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="http" />
</intent-filter>
</activity>
<provider android:authorities="com.creative.share.plugin.emailcomposer.attachmentprovider" android:name="de.appplant.cordova.plugin.emailcomposer.AttachmentProvider" />
</application>
我想我可以部分回答这个问题。我相信您正在尝试将图像共享到您的应用程序,您可以在其中处理它 在撰写本文时,您提到的插件有一个bug,但是您可以尝试以下解决方法: My AndroidManifest.xml如下所示:
My index.js如下所示:
window.plugins.webintent.getExtra(webintent.EXTRA_流,
函数(url)
{
log('getExtra:EXTRA_STREAM');
console.log(url);
},函数()
{
log('getExtra:EXTRA_流失败');
});
我希望这是有用的
为了完整起见,如果在阅读时还没有引入修复程序,您可以在platforms/android/src/com/borismus/webintent目录中手动应用更改
建议的修复方法是将WebIntent.java(第94行附近)更改为以下内容:
if(i.hasExtra(extraName)){
字符串r=i.getStringExtra(extraName);
如果(null==r){
r=((Uri)i.getParcelableExtra(extraName)).toString();
}
callbackContext.sendPluginResult(新的PluginResult(PluginResult.Status.OK,r));
返回true;
}
它是否适用于多个图像共享?因为当我选择多个图像并单击共享图标时,我的应用程序将变得可见,但它不会向应用程序提供内容,并在空对象引用上抛出“尝试调用虚拟方法'java.lang.String android.net.Uri.toString()”错误。它可以很好地用于单个图像共享。请帮帮我。嘿,格林先生,我真的不知道。您最好在最初的GitHub回购协议上提出这个问题: