Редактировать: извинения за недоразумение. Настройка приложения для открытия по ссылке различается в зависимости от платформы.
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 и будет активным.