场景描述
一些项目已经有一个原生应用在生产环境上运行,但是考虑到后续的功能扩展和开发成本,想使用IPU的框架来做后续的需求开发,并不打算推翻原有的应用。
Android
解决思路
将Android版IPU的客户端转换成Android Library应用,然后提供给第三方客户端引入打包。 第三方客户端只需写好一个启动IPU客户端的启动方法即可;
解决方案
- 复制assets中的配置文件。
- 修改AndroidManifest.xml配置文件。
实例
我们以IOO客户端工程为例: 这是一个以IPU框架为基础开发的android项目:ioo-client;
-项目展示:
-项目结构:

-IPU辅工程操作:
需要将IPU项目设置成为一个android-library项目;如下图(以ioo-client为例):

-第三方原生工程(ipu-ioo-demo工程)操作注意以下几点:
- 将IPU工程作为android-library工程引入;

- 将IPU工程中的assets资源复制到原生工程中:

如果不放入项目的assets资源,从原生项目中启动IPU项目时,将会因为找不到相关的assets文件而报错!
- 将IPU工程中的AndroidManifest中相关配置加入到原生工程的项目配置中:

不执行此步骤,也会应为找不到IPU项目对应的组件而报错!
- 写一个入口,进入IPU应用功能的方法: 在实例ipu-ioo-demo中,采用调用IPU主界面的方法进入IPU项目,调用结果如下图:

已经开始使用ioo-client项目了,登录进入,使用功能:



ioo-client功能都已集成到ipu-ioo-demo第三方原生工程中;

其他问题
- 工程jar包冲突
iOS
解决思路
将iOS版IPU的客户端打包为Framework,然后提供给第三方客户端引入打包。 第三方客户端只需写好一个启动IPU客户端的启动方法即可;
解决方案
- 在主工程中建立Res目录。作为应用资源目录。
- 将mobile-action.xml和mobile-config.xml复制到在Res/config中。
- 将public_key复制到Res/key中。
- 将进入应用的欢迎页放置在Res/webapp中,并配置在mobile-config.xml中
- 移植相关framework:
AMap.bundle IpuMapBundle.bundle KRVideoPlayerBundle.bundle WadeMobile.framework WadeMobileFunc.framework WadeMobileUI.framework WadeMobileBundle.bundle IpuMap.framework 打包的IPU客户端的.framework
实例
我们以IOO客户端工程为例: 这是一个以IPU框架为基础开发的iOS项目:IOO
-项目展示:
-项目结构:

-第三方原生工程(Master工程)操作注意以下几点:
- 将上述framework添加到项目中:

- 将IOO工程中的Res资源复制到原生工程中:

- 根据Master的应用名称,identifier到License主站 申请一个license,并在mobile-config.xml文件中配置
*写一个入口,进入IPU应用功能的方法:
YX_ViewController* vc = [[YX_ViewController alloc]init];
NSMutableDictionary *temp = [NSMutableDictionary dictionary];
[temp setObject:@"Basic" forKey:@"PAGE_ACTION"];
[temp setObject:@"3233333222" forKey:@"SESSION_ID"];
vc.params = temp;
[self presentViewController:vc animated:NO completion:nil];
在示例Master工程中,采用调用IPU主界面的方法进入IPU项目,调用结果如下图:

已经开始使用IOO项目了,登录进入,使用功能:



ioo-client功能都已集成到ipu-ioo-demo第三方原生工程中;

其他问题
- Framework Search Paths