react-native-deeplinks

1.0.6 • Public • Published

react-native-deeplinks

安装说明

  1. npm install react-native-deeplinks --save
  2. react-native link react-native-deeplinks

配置说明

深度链接需要手动配置项目接受外部链接启动,ios9之前以及android只能使用scheme方式,ios9之后可以使用scheme及universal links方式,后者可以无视微信屏蔽直接启动app,具体配置方法如下:

ios配置说明

配置scheme
  1. 配置scheme需要在plist文件中增加URL types项:

  • URL identifier指定一个URL对应id,值任意。
  • URL Schemes下添加scheme项,示例中配置custom-scheme则表示访问custom-scheme://any.url.you.want即可启动app。注意唯一性,防止与系统内其他app冲突。
  1. AppDelegate.m中增加如下代码:

     //引入头文件
     #import "RNDeepLink/RNDeepLink.h"
     
     //增加对链接启动的处理
     - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
     	return [RNDeepLink handleURL:url];
     }
    
配置 universal links

universal links为ios9之后新增特性,具体说明参阅苹果官方文档。

  1. 打开项目,在Capabilities选项卡下找到Associated Domains项并打开,然后在Domains里添加applinks:domain.yours,如图:。其中domain.yours为你需要指定的域名,并且该域名下的服务支持https

  2. 创建apple-app-site-association文件,并将其传到https://domain.yours/.well-known/下,文件内容如下:。其中appID项的值由teamidbundle identifier组成。paths值为*代表该域名下任意路径都可打开app。

  3. AppDelegate.m中增加如下代码:

     //引入头文件
     #import "RNDeepLink/RNDeepLink.h"
     
     - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {
     	return [RNDeepLink handleUserActivity:userActivity];
     }		
    

android配置说明

  1. 修改AndroidManifest.xml文件中Activity配置。设置launchModesingleTask,并在intent-filter中增加以下三项:<action android:name="android.intent.action.VIEW" /><category android:name="android.intent.category.BROWSABLE"/><data android:scheme="custom-scheme"/>。最终如图:

  2. 修改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
});

Package Sidebar

Install

npm i react-native-deeplinks

Weekly Downloads

2

Version

1.0.6

License

ISC

Unpacked Size

320 kB

Total Files

23

Last publish

Collaborators

  • npm_ibrain