Как сделать строку URL кликабельной в реагировать на родной ресурс - PullRequest
0 голосов
/ 02 ноября 2018

Я создал собственное приложение «Реакция» и добавил «Связывание». Он работает нормально, когда я открываю URL в браузере testapp: // params. Теперь я хочу, чтобы эта ссылка была доступна другим приложениям. Так что я использовал библиотеку реактив-нативную, чтобы поделиться этим. Но эта библиотека просто показывает строку как текст, но не кликабельна. Как сделать этот текст кликабельным, чтобы при нажатии пользователем на эту ссылку открывалось мое приложение.

 let shareOptions = {
  title: "React Native",
  message: "Hola mundo",
  url: "testapp://", //Here this should be clickable
  subject: "Share Link" //  for email
};
Share.open(shareOptions);

Может кто-нибудь, пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 02 ноября 2018

Редактировать: извинения за недоразумение. Настройка приложения для открытия по ссылке различается в зависимости от платформы.

IOS

Сначала добавьте следующее к вашему Info.plist

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>testapp</string>
        </array>
    </dict>
</array>

Если вы редактируете в Xcode, а не в текстовом редакторе, создайте ключ с именем "URL types", в разделе Item 0 создайте ключ с именем URL Schemes и установите Item 0 в URL Schemes равным String testapp ( или как там должна быть ссылка)

Далее в вашем AppDelegate.m файле добавьте его в свой последний импорт

#import <React/RCTLinkingManager.h>

Finally, add the following to your `AppDelegate.m` file under `@implementation AppDelegate`

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
  return [RCTLinkingManager application:application openURL:url
                      sourceApplication:sourceApplication annotation:annotation];
}

Теперь ввод testapp:// в адресную строку откроет ваше приложение

К сожалению, если сделать эту ссылку доступной через iMessage, не будет работать. Вместо этого лучше всего разместить простую веб-страницу со следующим скриптом:

<script>
  window.location = "testapp://"
</script>

Тогда вы можете разместить его на www.testapp.com, и оно откроет ваше приложение, когда пользователь перейдет туда.

Android

Добавьте intent-filter к вашему AndroidManifest.xml файлу

<intent-filter android:label="filter_react_native">
  <action android:name="android.intent.action.VIEW" />
  <category android:name="android.intent.category.DEFAULT" />
  <category android:name="android.intent.category.BROWSABLE" />
  <data android:scheme="http" android:host="testapp" /> // A
</intent-filter>

Вот и все! Теперь http://testapp откроет ваше приложение на Android и будет активным.


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