项目简介
本项目是基于Android的动态动作框架,简称DA(Dynamic Action)。该框架旨在取代传统的Context.startActivity调用方式,利用建造者模式构建交互参数,让程序更优美。它能对已有的Action进行修改,动态改变原有的跳转逻辑,还友好地实现了与H5间的跳转交互,解决了Activity在插件化项目的交互问题。
项目的主要特性和功能
- 动态Action实现:可动态修改和替换已有的Activity跳转逻辑,实现灵活交互。
- URI结构定制:基于标准URI结构,定制符合Android Activity交互的URI,使每个Activity有可访问的URI。
- H5与原生交互:支持Activity与H5的数据交互,统一使用JSON进行数据交互。
- 拦截器功能:支持对某些界面进行访问控制,通过配置下发实现动态拦截和跳转逻辑修改。
- 插件化支持:满足插件化项目中的动态跳转和交互需求。
- 配置文件管理:通过配置文件实现动态可变性,遵循“约定优于配置”原则,减少配置。
安装使用步骤
假设用户已下载本项目的源码文件,按以下步骤进行安装使用:
1. 添加依赖
在项目的build.gradle文件中添加以下依赖:
java
dependencies {
    compile 'com.opencdk:dynamicaction:1.2.0'
}
2. 配置文件拷贝
将demo中的配置文件assets/dynamic_action.cfg拷贝至项目assets目录下。
3. 修改配置文件
根据项目需求,修改配置文件dynamic_action.cfg中的scheme和包名映射关系。
4. 代码实现
使用DA框架进行Activity跳转示例:
java
new DA.Builder(Context)
    .setHost("1$Login")
    .go();
或:
java
new DA.Builder(Context)
    .setUriString("opencdk://1$Login")
    .go();
或:
java
new DA.Builder(Context)
    .setPackageId("1")
    .setActionName("Login")
    .go();
5. 数据交互
DA框架支持原生Activity间及Activity与H5间的数据交互,数据统一用JSON格式,示例如下:
java
new DA.Builder(Context)
    .setHost("1$Login")
    .setData("{\"username\":\"benniaobuguai\"}")
    .go();
6. 拦截器配置
通过配置文件实现拦截器的动态配置,示例如下:
xml
<interceptors>
    <interceptor
        name="LoginInterceptor"
        class="com.opencdk.da.interceptor.LoginInterceptor" >
    </interceptor>
    <actionInterceptor>
        <accept name="2$VideoVIPList" >
            <interceptor-ref>LoginInterceptor</interceptor-ref>
        </accept>
    </actionInterceptor>
</interceptors>
7. H5与原生交互
在H5界面中,可通过自定义的scheme跳转到任意原生界面,示例如下: ```html
通过重写`WebViewClient`的`shouldOverrideUrlLoading`方法,支持自定义的scheme:java
mWebView.setWebViewClient(new WebViewClient() {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        if (url != null && url.startsWith(DALoader.getScheme())) {
            new DA.Builder(mContext)
                .setUriString(url)
                .go();
            return true;
        }
        return super.shouldOverrideUrlLoading(view, url);
    }
});
```
通过以上步骤,可轻松集成和使用DA框架,实现灵活的动态动作和交互操作。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】