介绍
此SDK用于商城集成
准备工作
1.在APP的module中libs添加mallSdk-x.x.x.aar
SDK添加实例
2.添加依赖与权限
- 在工程gradle文件中添加
maven { url "https://jitpack.io" }
- 项目gradle文件中添加
repositories{
flatDir {
dirs 'libs'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
implementation 'com.android.support:design:28.0.0'
implementation(name: 'mallsdk-x.x.x', ext: 'aar')
- 工程AndroidManifest文件中添加
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
使用说明
1.初始化
- 继承Application
public class MyApp extends Application {
}
- 在AndroidManifest中添加name
<application
android:name=".MyApp"
- 在Application中onCreate初始化
public class MyApp extends Application {
@Override
public void onCreate() {
super.onCreate();
/**
* @param ccontext 上下文
* @param merchantId 商户号
*@param isProduct 是否是生产地址
*/
MallSdk.getInstance().registerMerchantNum(this,"M0000072",false);
}
}
2.类和方法的说明
- 进入SDK主页面的类和方法
/**
* @param ccontext 上下文
* @param type 根据不同类型跳转不同展示页
* CToMall.HOME 跳转首页
* CToMall.SORT 跳转分类
* CToMall.CART 跳转购物车
* CToMall.MINE 跳转我的
*/
CToMall.getInstance().toMall(Context context, int type);
- 主动登录方法
/**
* @param ccontext 上下文
* @param type 根据不同类型不同的登录方式
* LoginManager.LOGIN_PHONE 通过手机号码登录
* LoginManager.LOGIN_ID 通过id登录
* @param loginCode 手机号码或者id
*/
LoginManager.getInstance().logInMallLogin(ontext context,int type,String loginCode);
- 被动登录方法(sdk需要登录才能查看的页面,如果没有登录的情况下点击会调用此方法,此方法中可编写跳转登录页面或者直接调用主动登录方法)
LoginManager.getInstance().setLoginListener(new OnLoginListener() {
@Override
public void onLogin() {
// 添加登录逻辑 可添加跳转登录页面 或者 主动登录的方法
}
});
- 登录成功或失败的监听
LoginManager.getInstance().setLoginActionListener(new OnLoginActionListener() {
@Override
public void onLoginSuccess() {
//登录成功
}
@Override
public void onLoginFail() {
// 登录失败
}
});
- 支付的调用(根据需求可能此方法在需求中并不适用)
MallSdk.getInstance().setOnPayListener(new MallSdk.OnPayListener() {
@Override
public void onPay(String type, String data, CallBackFunction function) {
}
});
3.关于引用冲突
- 在工程gradle文件中添加android{ }中添加
configurations {
all*.exclude module: 'okhttp'
all*.exclude module: 'okio'
all*.exclude module: 'logging-interceptor'
all*.exclude module: 'retrofit'
all*.exclude module: 'converter-gson'
all*.exclude module: 'fastjson'
all*.exclude module: 'exifinterface'
all*.exclude module: 'transition'
all*.exclude module: 'ucrop'
}
关于混淆
-dontwarn com.bluewhale.sdk.**
-keep class com.bluewhale.sdk.**
-keep class com.bluewhale.sdk.**{ *; }
-dontwarn com.alibaba.fastjson.**
-keep class com.alibaba.fastjson.** { *; }
-keepattributes Signature
-keepattributes *Annotation*
-dontwarn retrofit.**
-keep class retrofit.** { *; }
-keepattributes Signature
-keepattributes Exceptions
-dontwarn com.squareup.okhttp3.**
-keep class com.squareup.okhttp3.** { *;}
-dontwarn okio.**
-dontwarn com.yalantis.**
-keep class com.yalantis.** { *; }