react-native-deeplinks
v1.0.6
Published
react-native deep-link
Downloads
7
Maintainers
Readme
react-native-deeplinks
安装说明
npm install react-native-deeplinks --save
react-native link react-native-deeplinks
配置说明
深度链接需要手动配置项目接受外部链接启动,ios9之前以及android只能使用scheme方式,ios9之后可以使用scheme及universal links方式,后者可以无视微信屏蔽直接启动app,具体配置方法如下:
ios配置说明
配置scheme
- 配置scheme需要在plist文件中增加
URL types
项:
URL identifier
指定一个URL对应id,值任意。URL Schemes
下添加scheme项,示例中配置custom-scheme
则表示访问custom-scheme://any.url.you.want
即可启动app。注意唯一性,防止与系统内其他app冲突。
AppDelegate.m
中增加如下代码://引入头文件 #import "RNDeepLink/RNDeepLink.h" //增加对链接启动的处理 - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url { return [RNDeepLink handleURL:url]; }
配置 universal links
universal links为ios9之后新增特性,具体说明参阅苹果官方文档。
打开项目,在
Capabilities
选项卡下找到Associated Domains
项并打开,然后在Domains
里添加applinks:domain.yours
,如图:。其中domain.yours
为你需要指定的域名,并且该域名下的服务支持https。创建
apple-app-site-association
文件,并将其传到https://domain.yours/.well-known/
下,文件内容如下:。其中appID
项的值由teamid和bundle identifier组成。paths
值为*
代表该域名下任意路径都可打开app。AppDelegate.m
中增加如下代码://引入头文件 #import "RNDeepLink/RNDeepLink.h" - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler { return [RNDeepLink handleUserActivity:userActivity]; }
android配置说明
修改
AndroidManifest.xml
文件中Activity
配置。设置launchMode
为singleTask
,并在intent-filter
中增加以下三项:<action android:name="android.intent.action.VIEW" />
、<category android:name="android.intent.category.BROWSABLE"/>
和<data android:scheme="custom-scheme"/>
。最终如图:修改
MainActivity
类,增加如下代码:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); DeepLink.getInstance().handleIntent(getIntent()); } @Override public void onNewIntent(Intent intent) { super.onNewIntent(intent); DeepLink.getInstance().handleIntent(intent); }
使用说明
import DeepLink from 'react-native-deeplinks';
DeepLink.addListener((deeplinks) => {
// deeplinks instanceof Array
});