MCRN-BRIDGE使用说明

栏目: Java · 发布时间: 5年前

"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使用说明》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Java Web开发实例大全(基础卷)

Java Web开发实例大全(基础卷)

软件开发技术联盟 / 清华大学出版社 / 2016-1 / 128.00

《Java Web开发实例大全(基础卷)》筛选、汇集了Java Web开发从基础知识到高级应用各个层面约600个实例及源代码,每个实例按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析解读。全书分为6篇23章,主要内容有开发环境搭建、Java语言基础、HTML/CSS技术、JSP基础与内置对象、JavaBean技术、Servlet技术、过滤器与监听器技术、JSTL标签库、JavaS......一起来看看 《Java Web开发实例大全(基础卷)》 这本书的介绍吧!

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具