Ioni c Плагин WebIntent для отображения приложения в общем списке - приложение просто открывается при нажатии на приложение в общем списке - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь добавить свое приложение в общий список (например, когда я хочу поделиться контактом, я хочу, чтобы мое приложение появилось).

Я использую этот плагин: 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);
    });

Что не так в моем коде?

Большое спасибо за вашу помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...