如何将图像从外部应用程序共享到Ionic 4应用程序

时间:2019-10-29 18:58:42

标签: android cordova ionic-framework ionic4

我正在尝试使用“共享与”功能将图像从另一个应用程序共享到Ionic 4应用程序。我的应用程序必须处理图像并使用它。 我已经尝试过this解决方案,但它是针对Ionic 3的。似乎不再需要使用该插件。 在Ionic 4中必须有解决此类常见任务的解决方案。

我尝试darryncampbell-cordova-plugin-intent失败。 我的代码是

    initializeApp() {
            this.platform.ready().then(() => {
                (<any>window).plugins.intentShim.registerBroadcastReceiver({
                    filterActions: [
                        'com.darryncampbell.cordova.plugin.broadcastIntent.ACTION'
                    ],
                    filterCategories: [
                        'android.intent.category.DEFAULT',
                    ],
                }, (intent) => {
                    //your code to be executed after the broadcast is received..
                    console.log('Received Intent: ' + JSON.stringify(intent.extras));
                });
            //more code...

此代码不执行任何操作。没事我能够编辑config.xml来配置清单,因此我的应用程序显示在菜单共享中。效果很好。

<intent-filter android:autoVerify="true">
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="image/*" />
</intent-filter>

1 个答案:

答案 0 :(得分:0)

我知道这是OP的重播,但我认为这对某人有帮助。

我已经使用cordova-plugin-openwith插件来实现此目的。这将帮助您使用“共享”功能将其他应用程序的图像共享到我们的Io​​nic 4应用程序。

您可以在应用程序组件的构造函数中使用以下代码初始化插件。

     // Initialize the plugin
     window.plugins.openwith.init((initSuccess) => {
          console.log('init success!' + initSuccess);
     }, (initError) => {
          console.log('init failed: ' + initError);
     });

您可以在之后添加事件处理程序。

     window.plugins.openwith.addHandler((intent) => {
           console.log('intent received');

           let fileType = '';
           for (const item of intent.items) {
              // const item = intent.items[i];
              console.log('  type: ', item.type);   // mime type
              console.log('  uri:  ', item.uri);
           }
     });

希望这对某人有帮助。:)快乐编码。