接口平台客户端生成物生成器
<dependency>
<groupId>com.rnkrsoft.platform</groupId>
<artifactId>interface-platform-generator</artifactId>
<version>最新版本号</version>
</dependency>
在开发的API项目中,任意新建一个内调用如下代码,则可生成安卓平台和iOS平台的生成物。
package com.rnkrsoft.platform.generator;
import org.junit.Test;
/**
* Created by rnkrsoft.com on 2018/10/12.
*/
public class InterfacePlatformGeneratorTest {
@Test
public void testGenerate() throws Exception {
InterfacePlatformGenerator.generate(DeviceType.Android, "com.rnkrsoft.platform.demo", "./target", "com.rnkrsoft.platform.service","com.rnkrsoft.platform.service.DemoService");
InterfacePlatformGenerator.generate(DeviceType.iOS, "com.rnkrsoft.platform.demo", "./target", "com.rnkrsoft.platform.service","com.rnkrsoft.platform.service.DemoService");
}
}
生成后将InterfacePlatform4j.zip复制解压到安卓项目中,使用如下代码
ServiceFactory serviceFactory = new ServiceFactory();
serviceFactory.settingConfigure(false, "gateway-configure.xxx.com", 80, "/configure");
//设置接口连接器实现
serviceFactory.getServiceConfigure().setInterfaceConnectorClass(HttpInterfaceConnector.class);
//设置远程配置获取失败后的退回接口服务器信息
serviceFactory.settingFallback("test-channel", false, "localhost", 80, "/api");
serviceFactory.settingFallback("public", false, "localhost", 80, "/api");
//如果不使用TOKEN作为密码时的固定密码
serviceFactory.setPassword("1234567890123456");
//加密时或者解密时的秘钥向量 默认配置,在configure无法成功获取时使用
serviceFactory.setKeyVector("1234567890654321");
//用户版本号
serviceFactory.setAppVersion("4.0.0");
//注册定位信息提供者
serviceFactory.registerLocationProvider(new LocationProvider() {
@Override
public void locate(LocationStore locationStore) {
locationStore.refreshLocation(new Location(1, 2));
}
});
//是否自动获取定位信息
serviceFactory.getServiceConfigure().setAutoLocate(true);
serviceFactory.getServiceConfigure().setMacAddress("44-45-53-54-00-00");
//用户标识
serviceFactory.getServiceConfigure().setUid("sssss");
serviceFactory.getServiceConfigure().setUic("2542563b-a153-48af-84d4-d40542c8bc3b");
//向客户端中注册用户服务类, 安卓环境下只能使用该方法注册服务
serviceFactory.addServiceClasses(UserService.class);
//初始化
//serviceFactory.init();
//如果需要在安卓平台上处理初始化错误则需要调用另一个init
serviceFactory.init(true, new AsyncHandler() {
@Override
public void fail(String code, String desc, String detail) {
System.out.println(desc);
}
@Override
public void success(Object response) {
System.out.println(response);
}
});
//获取业务的门面类
HelloService helloService = ServiceFactory.get(HelloService.class);
//调用hello方法,就仿佛服务在本地一样使用
AsyncTask asyncTask = helloService.hello(new HelloRequest(), new AsyncHandler(){
@Override
public void fail(String code, String desc, String detail) {
System.out.println(desc);
//发生通信层错误在这里处理
}
@Override
public void success(Object response) {
System.out.println(response);
//业务体返回,其中的rspCode表示业务返回码,0000代表成功,其余为失败,更多的为使用者自己定义
}
});