使用WebIntent Native Plugin从intent-filter获取Intent

时间:2017-08-17 22:48:47

标签: android android-intent ionic3 ionic-native

我正在使用Ionic Native Plugin Web Intent,我想获得一个Android Intent,并在我的应用中使用媒体文件或本地网址。我的AndroidManifest.xml没关系,我可以看到myApp作为共享选项或选择图像。

<action android:name="android.intent.action.PICK"/> 
<action android:name="android.intent.action.SEND"/>
<action android:name="android.intent.action.SEND_MULTIPLE"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="image/*"/>

但是我在我的应用程序中试图获得这个意图。

我尝试使用https://ionicframework.com/docs/native/web-intent/原生插件,但我收到了响应错误“plugin_not_installed”。

constructor(private _platform: Platform,
        private _webIntent: WebIntent
    ) {
    }

...

ionViewDidLoad() {
     this._platform.ready().then(() => {

            this._webIntent.getIntent().then((data: any) => {
                // Use data from intent
            }).catch((error:any) => console.log(error));
        });
}

使用Android 5.0.1版进行调试。

如果有人可以帮助我!我真的很感激!

Obs。:我看了https://forum.ionicframework.com/t/webintent-plugin-not-installed/96744,我没有看到任何解决方案。

2 个答案:

答案 0 :(得分:0)

您必须将Intent过滤器添加到AndroidManifest.xml。

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

然后在构造函数中,在设备处于就绪状态后执行此操作。

   if (window.plugins){
      window.plugins.webintent.hasExtra(window.plugins.webintent.EXTRA_STREAM,
      function(hasIt){
        if (hasIt) {
          window.plugins.webintent.getExtra(window.plugins.webintent.EXTRA_STREAM,
          function(streamData){
            console.log(streamData);
          }, function(err){
            console.log(err);
          });
        }
      },function(err){
          console.log(err);
      });
    }

答案 1 :(得分:-1)

您应该在构造函数中移动getIntent()