背景:App项目一直是用RN编写的,现在需要支持与外部App联动,但是外部App可能是原生,也可能是RN。
打算用URL scheme这套机制来做,RN端用Linking来实现即可,但是原生App实现的时候还是遇到一些坑,记录一下:
说的比较好的是这篇文章:https://www.jianshu.com/p/137ccdd943ae。但是他有些地方说的也不是很对,后面会说明。
加入原生App A 需要拉起 RN App B:
App A(这里A其实也用RN搭建的,但是方法是用的原生的方式,如果用RN的方式直接用Linking.openURL即可):
package com.xxx;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.content.pm.PackageManager;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundException;
import com.facebook.react.bridge.Promise;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.faceboo