"dependencies": { "@mc/mcrn-bridge": "x.x.x", } 复制代码
2.执行npm install安装mcrn-bridge
Android端接入流程
1.在Setting.gradle中加入
include ':mcrn-bridge' project(':mcrn-bridge').projectDir = new File(rootProject.projectDir, '../node_modules/@mc/mcrn-bridge/android') 复制代码
2.在项目根目录的build.gradle中的添加如下内容
allprojects { repositories { //正式版的maven地址 maven { url 'http://mvn.sprucetec.com/nexus/content/repositories/releases/' } //SNAPSHOT 的maven地址 maven { url 'http://mvn.sprucetec.com/nexus/content/repositories/snapshots/' } } } 复制代码
3.在App build.gradle 中 做如下操作
3.1在defaultConfig中添加
annotationProcessorOptions { arguments = [moduleName: project.getName()] } android{ defaultConfig { javaCompileOptions { annotationProcessorOptions { arguments = [moduleName: project.getName()] } } } } 复制代码
3.2 在dependencies中加入
api project(':mcrn-bridge') api('com.meicai.android:router_api:1.0') annotationProcessor('com.meicai.android:router_compiler:1.0') 复制代码
4.在APP的Application中添加如下内容
4.1在Application的Oncreate内添加
MCRouter.init(this); MCRNBridge.init(getReactNativeHost()); 复制代码
4.2在getPackage中添加 new MCRNReactPackage()
@Override protected List<ReactPackage> getPackages() { return Arrays.<ReactPackage>asList( ... new MCRNReactPackage() ... ); } 复制代码
5.在APP的Mainfest.xml中添加
<activity android:name="com.meicai.mcrn_bridge.activity.MCReactActivity" android:screenOrientation="portrait" /> 复制代码
到此,接入就完成了,开始使用吧。
使用说明
Android原生端使用说明
1.如果项目有基类BaseActivity,只需在BaseActivity中添加如下内容
1.1在BaseActivity类中添加
protected abstract String setRouterPath(); 复制代码
1.2在BaseActivity的onCreate中添加
@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); String path = setRouterPath(); AppManagerUtils.getInstance().addActivity(path, this); } 复制代码
1.3 在BaseActivity的onDestroy中添加
@Override protected void onDestroy() { super.onDestroy(); AppManagerUtils.getInstance().finishActivity(this); } 复制代码
1.4添加完成后所有继承BaseActivity的类都会重写setRouterPath()方法
@Override protected String setRouterPath() { return "xxx"; } 复制代码
需要在该方法中返回当前页面的路径,方便将该Activity加入栈中,目的是方便RN端回退到特定路径的页面,比如当前打开页面为A-B-C-D
B端路径为"/home/b",则RN端可以根据跳转到"/home/b"这个路径,也就是回退到B页面,同时将C、D页面销毁。
2.如果Android端APP没有公共的BaseActivity,则需要在每个页面Oncreate 和onDestory中加入如下内容
@Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); AppManagerUtils.getInstance().addActivity("xxx", this); } @Override protected void onDestroy() { super.onDestroy(); AppManagerUtils.getInstance().finishActivity(this); } 复制代码
注意:上边的xxx是指该页面的路径,每个页面都有一个唯一的路径,用户需要手动填写,确保每个Activity的路径唯一。
3.Fragment 如何添加路径
3.1,可以通过new MCReactFragment得到fragment
MCReactFragment fragment = MCReactFragment.newInstance(this, mReactInstanceManager, "example", "/Example", "{}", Uuid.getInstance().getUid()); 复制代码
3.2,可以继承MCReactFragment,并重写getMainComponentName()、getPath()、getQuery()、getViewId()方法
public class SecondFragment extends MCReactFragment { private String viewId; @Override public String getMainComponentName() { return "mcrn"; } @Override public String getPath() { return "/home/main"; } @Override public String getQuery() { return "{}"; } @Override public String getViewId() { if (TextUtils.isEmpty(viewId)) { viewId = Uuid.getInstance().getUid(); } return viewId; } } 复制代码
4.Android端如何通过Activity路径打开Activity
4.1在需要跳转的Activity顶部添加@Route("/xxx/xxx")
注意:xxx是指该页面路径。注意,路径需要设置两级以上,并且以/开头
@Route(path = "/home/first") public class FirstActivity extends BaseActivity { ... } 复制代码
4.2Android 端可以通过该路径打开该页面
MCRouter.getsInstance().build("/home/first").navigation(); 复制代码
以上所述就是小编给大家介绍的《MCRN-BRIDGE使用说明》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。