Открытие приложения внутри другого приложения с использованием глубокой связи с собственным настраиваемым URL React (Andorid) - PullRequest
0 голосов
/ 05 июля 2018

Я новичок в React-native. Мы пытаемся реализовать собственное приложение, в котором будет предоставлена ​​кнопка, чтобы каждый раз, когда пользователь нажимает на кнопку, он направлялся в магазин, если приложение не установлено. Если приложение уже установлено по нажатию кнопки, он сможет открыть приложение, которого в данный момент нет.

AndroidManifest.xml

 <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
 </intent-filter>
 <intent-filter>
    <action android:name="android.intent.action.VIEW"></action>
    <category android:name="android.intent.category.DEFAULT">
  </category>
    <category android:name="android.intent.category.BROWSABLE">
  </category>
    <data  android:scheme="whatsapp"></data>
 </intent-filter>

Выше приведен код, который мы изменили в файле AndroidManifest.xml.

App.js У нас есть метод с именем handle () , который будет обрабатывать события

 handle(){
 let appName = 'whatsapp';
 let url = 'https://play.google.com/store/apps/details?id=com.whatsapp';
 Linking.openURL(url).catch(err => {
  if (err.code === 'EUNSPECIFIED') {
        if (Platform.OS === 'android') {
          Linking.openURL(
            url
          );
        }
      } else {
        throw new Error(`Could not open ${appname}. ${err.toString()}`);
      }
    });}

Приведенный выше код работает нормально для открытия приложения в Playstore. Но когда приложение уже установлено на устройстве, оно по нажатию кнопки должно сразу открыть приложение с помощью пользовательского URL.

Когда мы используем canOpenURL () с пользовательской схемой URL, это ничего не делает. И когда я использую пользовательскую схему Url с openURL () , она выдает мне предупреждение о том, что в android.intent.action.VIEW ничего не предусмотрено и не определено, но оно предоставляется.

const url = 'whatsapp://';
   Linking.canOpenURL(url).then(supported => {
    if (!supported) {
      console.log('Can\'t handle url: ' + url);
 }else {
      return Linking.openURL(url);
}
 }).catch(err => console.error('An error occurred', err));

Пожалуйста, помогите нам. Спасибо в Advace !!

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