项目简介
本项目是基于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】