Я хочу реализовать глубокую привязку, чтобы другие приложения распознавали и открывали мое приложение - PullRequest
0 голосов
/ 23 мая 2019

Я глубоко связал свое приложение со схемой, например: // test /: id. Что я хочу сделать, это преобразовать это в www.someurl.com/test/:id, но понятия не имею, как это сделать.Я хочу сделать это ссылкой, которой можно поделиться, и открою приложение, например, https://shrts.in/JRnN.

Мой обработчик URL выглядит примерно так: я использую response-native-deep-linking

   componentDidMount() {

     DeepLinking.addScheme('example://');
     Linking.addEventListener('url', this.handleUrl);
     DeepLinking.addRoute('/test/:id', (response) => {
       // example://test/23
       this.props.navigation.navigate('Article',{id:response});
     });

     Linking.getInitialURL().then((url) => {
       if (url) {
         Linking.openURL(url);
       }
     }).catch(err => console.error('An error occurred', err));
   }

   componentWillUnmount() {
     Linking.removeEventListener('url', this.handleUrl);
   }

   handleUrl = ({ url }) => {
     Linking.canOpenURL(url).then((supported) => {
       if (supported) {
         DeepLinking.evaluateUrl(url);
       }
     });
   }

Есть ли место для улучшений, я относительно новичок, чтобы реагировать. Все ссылки в Интернете в основном устарели. Я могу открыть это приложение, используя adb, как этот

adb shell am start -W -a android.intent.action.VIEW -d "example://test/346" com.app

Но я хочу открыть его сверхуиз URL, который я могу ввести в браузере что-то вроде www.someurl.com/test/:id, если у меня есть мой веб-сайт

Edit

Это мое намерение в манифесте

<intent-filter >
          <action android:name="android.intent.action.VIEW" />
          <category android:name="android.intent.category.DEFAULT" />
          <category android:name="android.intent.category.BROWSABLE" />
          <data android:pathPattern="/.*"></data>
           <data android:scheme="example" android:host="test" />

        </intent-filter>

1 Ответ

0 голосов
/ 23 мая 2019

https://developer.android.com/training/app-links/deep-linking#adding-filters Вот официальный документ для Deeplink на Android.Извините, я не тестирую его в первый раз!



<intent-filter >
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <!-- Accepts URIs that begin with "example://gizmos” -->
        <data android:scheme="example"
              android:host="test" />
</intent-filter>

Попробуйте добавить еще один фильтр намерений. И используйте "adb shell am start -W -a android.intent.action.VIEW -d "example://test", чтобы открыть приложение.в браузере. Но попробуйте написать HTML-файл и добавить ссылку в тег, вы найдете приложение открыто!

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