Я пытаюсь добавить свое приложение в общий список (например, когда я хочу поделиться контактом, я хочу, чтобы мое приложение появилось).
Я использую этот плагин: https://ionicframework.com/docs/native/web-intent/
- Иони c 5
- com-darryncampbell-cordova-plugin-intent 2.0.0 "Intent Shim"
- Cordova CLI: 9.0.0 (cordova-lib@9.0.1)
Я успешно сделал приложение списком общего доступа, но когда я нажимаю на него, чтобы отправить что-то, приложение просто открывается, но не входит в "registerBroadcastReceiver" ".
Я добавил следующий код в файле конфигурации. xml file:
<config-file parent="application" target="AndroidManifest.xml">
<activity android:label="MyAPP" android:name="com.myapp.app">
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.SENDTO" />
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
<data android:mimeType="*/*" />
</intent-filter>
</activity>
</config-file>
, и я добавил xmlns: android =" http://schemas.android.com/apk/res/android "в тег виджета
В app.component.ts у меня есть следующий код, который вызывается в методе initializeApp, когда платформа готова:
pluginBrodcastReciever() {
console.log('REGISTER INTENT');
const filter = {
filterActions: [
'com.myapp.app.ACTION_SEND',
'com.myapp.app.ACTION_SENDTO',
'com.myapp.app.ACTION_CALL'
]
};
this.webIntent.registerBroadcastReceiver(filter).subscribe((data) => {
console.log(data);
this.navCtrl.navigateRoot('/some-other-page');
}, (error) => {
console.error(error);
});
}
Когда я тестирую трансляцию в своем собственном приложении, он входит в registreBroadcastReciever, но когда я выбираю свое приложение из общего списка, оно не работает.
// Test send broadcast in app
const optionsBroadcast = {
extras: {
'random.number': Math.floor((Math.random() * 1000) + 1)
},
action: this.webIntent.ACTION_SEND
};
this.webIntent.sendBroadcast(optionsBroadcast).then(data => {
console.log(data);
}).catch(error => {
console.error(error);
});
Что не так в моем коде?
Большое спасибо за вашу помощь.