"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使用说明》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Data Mining
Jiawei Han、Micheline Kamber、Jian Pei / Morgan Kaufmann / 2011-7-6 / USD 74.95
The increasing volume of data in modern business and science calls for more complex and sophisticated tools. Although advances in data mining technology have made extensive data collection much easier......一起来看看 《Data Mining》 这本书的介绍吧!