littlebot
Published on 2025-04-11 / 0 Visits
0

【源码】基于Android的动态动作框架

项目简介

本项目是基于Android的动态动作框架,简称DA(Dynamic Action)。该框架旨在取代传统的Context.startActivity调用方式,利用建造者模式构建交互参数,让程序更优美。它能对已有的Action进行修改,动态改变原有的跳转逻辑,还友好地实现了与H5间的跳转交互,解决了Activity在插件化项目的交互问题。

项目的主要特性和功能

  1. 动态Action实现:可动态修改和替换已有的Activity跳转逻辑,实现灵活交互。
  2. URI结构定制:基于标准URI结构,定制符合Android Activity交互的URI,使每个Activity有可访问的URI。
  3. H5与原生交互:支持Activity与H5的数据交互,统一使用JSON进行数据交互。
  4. 拦截器功能:支持对某些界面进行访问控制,通过配置下发实现动态拦截和跳转逻辑修改。
  5. 插件化支持:满足插件化项目中的动态跳转和交互需求。
  6. 配置文件管理:通过配置文件实现动态可变性,遵循“约定优于配置”原则,减少配置。

安装使用步骤

假设用户已下载本项目的源码文件,按以下步骤进行安装使用:

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

Login

Play Video

http://www.opencdk.com

通过重写`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】