文档编辑记录
日期 | 编辑内容 |
---|---|
2018-7-16 | 创建文档 |
2018-8-6 | 修改版本、更新文档 |
版本
当前版本号:2.0.6
更新日志
版本号 | 更新内容 | 日期 |
---|---|---|
2.0.0 | 大幅优化用户体验和系统稳定性 | 2018-7-16 |
2.0.6 | 代码混淆 | 2018-8-6 |
常量定义
AppConfig.LD_BASE_URL = 基础api地址
AppConfig.WEEX_URL = weex页面服务器地址
AppConfig.SHOP_APP_KEY = 购物模块 appKey
AppConfig.SHOP_BASE_URL = 购物模块基础api地址
AppConfig.SHOP_MALL_CODE = 购物模块识别码
AppConfig.API_VERSION = api版本号
使用
- 在Application下初始化项目所需组件
a. 基础初始化
//初始化 上下文(必须)
ApplicationUtil.init(this);
//初始化 缓存控制器(必须)
LCache.init(this);
//初始化页面状态控制器(必须)
PageManager.initInApp(R.layout.empty, R.layout.loading, R.layout.error);
b. 组件初始化
/**
网络模块初始化
*/
public static void initNetModule(Context context) {
//http 引擎
OkHttpClient.Builder mBuilder = new OkHttpClient.Builder();
//打印日志
mBuilder
//请求头(必须设置)
.addInterceptor(new BuyerHeaderInterceptot())
// 超时时间设置
.connectTimeout(15, TimeUnit.SECONDS)
.writeTimeout(15, TimeUnit.SECONDS)
.readTimeout(15, TimeUnit.SECONDS);
//初始化
LHttp.getInstance().init(context)
.setHttpClient(mBuilder.build());
}
/**
* 初始化mvp模块
*
* @param application 上下文
*/
public static void initMvpModule(Application application) {
MvpConfigure.getInstance().init(application)
.setResponseErrorListener((context, t) -> {
// 网络异常统一处理
ExceptionHandle.ResponseThrowable responseThrowable =
ExceptionHandle.handleException(t);
})
.build();
}
//扫一扫模块(可选)
public static void initQR() {
QRSDK.getInstance().init(new IQRResult() {
@Override
public void onSuccess(Context context, int request, String s) {
if (request != 0) return;
if (RegexUtils.isURL(s)) {
IntentRouterUtil.launchWebViewActiivity(context, "", s);
return;
}
// 12 或 13 位的条形码
if (RegexUtils.isMatch("^[1-9]\\d{11,12}$", s)) {
ShopIntentUtil.launchShopPurchaseActivity(context);
return;
}
}
@Override
public void onFail(Context context) {
}
});
}
//weex模块
public static void initWexModule(Application application) {
WexSDK.getInstance().init(application,// 上下文
!BuildConfig.DEBUG, //是否启用缓存
AppConfig.LD_BASE_URL,//api
AppConfig.WEEX_URL);// weex url
}
/**
* 初始化商城模块
*/
public static void initShopModule(Application context) {
// 上下文,appKey,shopApiUrl,mallCode,api版本
BuyerSDK.init(context, AppConfig.SHOP_APP_KEY,
AppConfig.SHOP_BASE_URL, AppConfig.SHOP_MALL_CODE, AppConfig.API_VERSION);
//支付设置
//上下文,支付信息,支付方式(wxpay,wxpayh5)
BuyerSDK.setShopPay((context1, shopPayWxEntity, payType)->{
})
//shop登录状态监听
BuyerSDK.setIShopLoginStatus(new IShopLoginStatus() {
@Override
public void loginSuccess(Context context1, IBaseView baseView, String userKey) {
// 登录成功
}
@Override
public void loginFail(Context context1, IBaseView baseView) {
//登录失败
}
});
//shop 点击事件
BuyerSDK.setShopOnClickListener(new ShopOnClickListerImpl());
}
- ShopOnClickListerImpl 实现
public class ShopOnClickListerImpl extends ShopOnClickListener {
public ShopOnClickListerImpl() {
}
/**
* 点击进入聊天界面
* @param context 上下文
* @param accountId im用户id
* @param name 用户名称
*/
@Override
public void onMessageClick(Context context, String accountId, String name) {
}
/**
* 点击进入聊天界面,携带的是当前 商家店铺信息和商品信息
* @param context 上下文
* @param shopProductMessageEntity 商家店铺信息和商品信息
*/
@Override
public void onMessageClick(Context context, ShopProductMessageEntity shopProductMessageEntity) {
}
/**
* 点击进入聊天界面,携带一个订单id
* @param context 上下文
* @param accountId 用户id
* @param name 姓名
* @param orderId 订单id
*/
@Override
public void onMessageClick(Context context, String accountId, String name, String orderId) {
}
/**
* 过期
* @param context1 上下文
* @param url 地址
*/
@Override
public void onShopHomeUrlClick(Context context1, String url) {
}
/**
* 初始化是否免打扰
* @param button 开关按钮
* @param accountId 用户id
*/
@Override
public void onInitDisturb(SwitchButton button, String accountId) {
}
/**
* 初始化是否是置顶
* @param button 开关按钮
* @param accountId 用户id
*/
@Override
public void onInitConversationTop(SwitchButton button, String accountId) {
}
/**
* 查找聊天记录
* @param activity 上下文
* @param sessionId 用户id
* @param name 姓名
* @param url 头像
*/
@Override
public void onSearchChatRecord(Context activity, String sessionId, String name, String url) {
}
/**
* 设置用户免打扰
* @param button 免打扰开关
* @param sessionId 用户id
* @param isCheck 是否免打扰
*/
@Override
public void onClickDisturb(SwitchButton button, String sessionId, Boolean isCheck) {
}
/**
* 设置用户是否置顶
* @param button 置顶开关
* @param sessionId 用户id
* @param isCheck 是否置顶
*/
@Override
public void onClickConversationTop(SwitchButton button, String sessionId, Boolean isCheck) {
}
/**
* 过期
* @param sellerMessageEntity 消息体
*/
@Override
public void onFillSellerMessageEntity(SellerMessageEntity sellerMessageEntity) {
}
/**
* 取消关注,从消息列表移除
* @param sessionId 用户id
*/
@Override
public void onCancelFavoriteRemoveConversation(String sessionId) {
}
/**
* 清除聊天记录
* @param sessionId 用户id
*/
@Override
public void onClearConversation(String sessionId) {
}
//模型扩展点击事件,如果需要调用购物以外的页面可使用到,否则调用默认实现
@Override
public void onClickShopMenu(Context context, ShopPluginEntity entity) {
}
}
BuyerSDK方法API
/**
* @param context 上下文
* @param iBaseView view
* 购物模块登录
*/
public static void login(Context context, IBaseView iBaseView) {}
/**
* 设置用户信息
* @param userLoginRequestEntity 用户登录信息
*/
public static void setLoginUserInfo(BuyUserLoginRequestEntity userLoginRequestEntity) {}
/**
* buyer 用户退出登录(app退出登录后,必须执行)
*/
public static void buyerLoginOut() {}
/**
* @param accountId userId
* @param iShopSeller 商家菜单对象
* 是否是商家,并返回商家底部菜单,用于im
*/
public static void isShopSeller(String accountId, IShopSeller iShopSeller) {
}
/**
* @param currentCommunity 当前社区对象
* 会刷新社区下的插件
*/
public static void setCurrentCommunityNotifyPlugin(CommunityEntity currentCommunity) {
}
/**
* @param communityId 社区id
* @param listener 获取社区插件
*/
public static void getBuyerPluginList(String communityId, OnShopPluginListCallBackListener listener) {
}
/**
* @param currentCommunity 当前社区对象
* 设置当前社区
*/
public static void setCurrentCommunity(CommunityEntity currentCommunity) {
}
/**
* @return 获取当前社区
*/
public static CommunityEntity getCurrentCommunity() {
}
/**
* 同步buyer数据,进入app必须调用一次
*/
public static void syncBuyerData() {
}
/**
* 获取热词
*/
public static void syncProductHotWords() {
}
/**
* 同步购物车数据,进入app必须调用一次
*/
public static void syncBuyerCarData() {
}
⚠️特别注意
1、!!!购物模块高度依赖参数:userKey,所以要保证购物模块登录接口的准确性
2、敏感数据请参见其它文档