我正在使用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,我没有看到任何解决方案。
答案 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()
。