淘寶客SDK,一鍵匯入淘寶客商城,快速實現流量變現,新增商城返利功能

2020-10-22 11:00:48


特別注意:舊版本停止維護,需儘快升級到v1.2.3版本

一、Demo專案地址

在這裡插入圖片描述

二、關於SDK

  • 支援淘寶授權登入、免登入
  • 一鍵接入各種商城模組
  • 部署自己的伺服器,實現使用者返利
  • 一鍵設定淘寶客推廣位,賺取收益
  • 體積小,增量約為5M左右

三、接入前準備

四、全域性引數設定

Module下build.gradle中設定

defaultConfig {

	///
	
	manifestPlaceholders = [
	scheme : "sdk", // 協定,自己定義一個任意字串即可
		product: 1 // 產品id,邀請好友,軟體更新等地方需要用到,需要在我們後臺設定
	]
}

AndroidManifest.xml設定

<!--設定FileProvider-->
<provider
	android:name="android.support.v4.content.FileProvider"
	android:authorities="您的包名.fileprovider"
	android:exported="false"
	android:grantUriPermissions="true">
		<meta-data
			android:name="android.support.FILE_PROVIDER_PATHS"
			android:resource="@xml/file_paths" />
</provider>

<!--友盟 若專案中需要整合友盟統計,加入如下設定-->
<meta-data
	android:name="UMENG_APPKEY"
	android:value="友盟id"
	tools:replace="android:value" />

file_paths.xml

<?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
	<external-files-path
		name="external-files"
		path="/" />
	<external-cache-path
		name="external-cache"
		path="/" />
</paths>

五、接入SDK

1、元件說明

  • 匯入元件
// 基礎工具
implementation 'com.houhoudev:common:1.2.3'
// 商城基礎
implementation 'com.houhoudev:store:1.2.3'
// 使用者基礎
implementation 'com.houhoudev:user:1.2.3'
// 掃描二維條碼
implementation 'com.houhoudev:zxing:1.2.3'
  • 元件中已經包含了如下元件,請勿重複匯入
// 圖片快取
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
// gson解析
implementation 'com.google.code.gson:gson:2.8.2'
// 友盟統計
implementation 'com.umeng.umsdk:analytics:8.0.0'
implementation 'com.umeng.umsdk:common:2.0.0'
// OKHttp
implementation 'com.squareup.okhttp3:okhttp:4.8.1'
// RecyclerViewAdapter
implementation 'com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.31'
// EventBus
implementation ('org.greenrobot:eventbus:3.1.1')
  • 如果無法下載元件,請在工程build.gradle中新增以下倉庫
repositories {
	// 阿里百川
	maven { url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/" }
	// 友盟
	maven { url 'https://dl.bintray.com/umsdk/release' }
	// 阿里映象
	maven { url 'http://maven.aliyun.com/nexus/content/groups/public' }
	// 商城
	maven { url 'https://raw.githubusercontent.com/houhoudev/repository/master' }
}

2、SDK呼叫

  • 首先需要在application中初始sdk
String pid = "mm_118568524_485000365_109457800416"; // 淘寶聯盟pid
String adzoneid = "109457800416"; // pid最後一段
String unionId = ""; // 聯盟id(一般傳"")
String appKey = "26313026"; // 淘寶聯盟appKey
StoreSdk.init(this, pid, adzoneid, unionId, appKey);// 初始化sdk
  • 模組、頁面呼叫
// 首頁fragment
Bundle bundle = new Bundle();
bundle.putString("hot_name", "今日上新");// 橫向商品列表標題文字
// 排序:0.綜合(最新),1.券後價(低到高),2.券後價(高到低),3.券面額(高到低),4.月銷量(高到低),
// 5.佣金比例(高到低),9.全天銷量(高到低),11.近2小時銷量(高到低)
bundle.putString("hot_sort", "0");// 橫向商品列表排序方式:
bundle.putString("recommend_sort", "11");// 為你推薦/商品分類 列表排序
bundle.putInt("span", 1);// 商品列表預設每行顯示商品個數:傳1或2
Fragment fragment = StoreSdk.getMainFrag(bundle);
// 我的訂單activity(需配合返利功能使用)
StoreSdk.startOrderAct(getActivity());

在這裡插入圖片描述

// 跳轉首頁Activity
StoreSdk.startMainAct(getActivity());

在這裡插入圖片描述        在這裡插入圖片描述

// 檢測商品標題(在首頁Activity中檢測)
private SearchResultPopupWindow mSearchResultPopupWindow;
private void init() {
	// 初始物件
	mSearchResultPopupWindow = new SearchResultPopupWindow(this, getWindow().getDecorView());
}
@Override
protected void onResume() {
	super.onResume();
	// 首頁每次獲得焦點時檢測,檢測到商品標題時彈出
	mSearchResultPopupWindow.onResume();
}
// 掃一掃activity
StoreSdk.startErCode(this);
		
// onActivity中處理
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
	super.onActivityResult(requestCode, resultCode, data);
	// 掃一掃處理
	StoreSdk.onErCodeResult(this, requestCode, resultCode, data);
}

在這裡插入圖片描述        在這裡插入圖片描述

// 分類fragment
Fragment classifyfrag = StoreSdk.getClassifyFrag();
// 跳轉分類Activity
StoreSdk.startClassifygAct(this);

在這裡插入圖片描述         在這裡插入圖片描述

// 榜單Fragment
Fragment rankingFrag = StoreSdk.getRankingFrag();
// 跳轉榜單Activity
StoreSdk.startClassifygAct(this);

在這裡插入圖片描述        在這裡插入圖片描述

// 發現Fragment
Frament propleFrag = StoreSdk.getPeopleFrag();
// 發現Activity
StoreSdk.startPeopleAct(this);

在這裡插入圖片描述        在這裡插入圖片描述

// 品牌fragment
Fragment brandFrag = StoreSdk.getBrandFrag());

在這裡插入圖片描述

// 我的Fragment
Fragment mineFrag = StoreSdk.getMineFrag();
// 跳轉我的Activity
StoreSdk.startMineAct(this);

在這裡插入圖片描述        在這裡插入圖片描述

// 跳轉金幣Activity
StoreSdk.startCoinsAct(this);
// 邀請好友Activity
StoreSdk.startFriends(this);
// 商品詳情Activity
StoreSdk.startGoodDetail(this, 521422451240L);

在這裡插入圖片描述

// 我的收藏Activity
StoreSdk.startCollection(this);
// 我的足跡Acivity
StoreSdk.startHistory(this);

在這裡插入圖片描述        在這裡插入圖片描述

// 系統訊息Activity
StoreSdk.startMessageAct(this);
	
// 購物車Activity
StoreSdk.startCarts(this);
	
// 登入Activity
// 判斷是否登入
if (!StoreSdk.isLogin()) {
	// 跳轉登入頁面
	StoreSdk.startLogin(getActivity());
}
   	
// 每日簽到
if (StoreSdk.isLogin()) {
	StoreSdk.sign();
}
// 查詢使用者資訊介面
StoreSdk.userInfo(new HttpCallBack() {
	@Override
	public void onResponse(HttpResult result) {
		if (result.isSuccess()){
			ToastUtils.show(result.getData());
		}
	}

	@Override
	public void onFailure(int code) {
		// 出錯          
	}
});

{
    "coinsBalance":105302, // 金幣餘額
    "coinsDay":128, // 今日金幣
    "messageCount":0, // 未讀訊息條數
    "code":"QQQW", // 邀請碼
    "coinsMonth":1024, // 本月金幣
    "recommend_id1":0, // 邀請人id
    "name":"小小小小木木夕", // 暱稱
    "photo":"http://gw.alicdn.com/tps/i3/TB1yeWeIFXXXXX5XFXXuAZJYXXX-210-210.png_160x160.jpg", // 頭像
    "isSign":true // 是否已簽到
}
  • 傳送訊息事件
// mainFrag置頂
EventMessage message = new EventMessage();
message.type = "HOME_TOP";
EventBusUtils.post(message);
// rankingFrag置頂
EventMessage message = new EventMessage();
message.type = "RANK_TOP";
EventBusUtils.post(message);
  • 接收訊息事件
// 需要在接收事件的類中註冊和取消註冊事件
	
// 註冊事件
EventBusUtils.register(this);
	
// 取消註冊事件
EventBusUtils.unregister(this);
// 在類新增訂閱事件 
@Subscribe
public void onReceiveMessage(EventMessage message) {
	if ("GET_COINS_SUCCESS".equals(message.type)) {
		// 簽到、瀏覽商品、每日簽到等獲得金幣通知 做重新整理使用者資訊操作
		ToastUtils.show("簽到成功");
	}
        
	if ("LOGIN_SUCCESS".equals(message.type)) {
		// 登陸成功 做重新整理使用者資訊操作
		ToastUtils.show("登入成功");
	}
        
	if ("EXIT_LOGIN".equals(message.type)) {
		// 退出登入成功 做清除使用者資訊操作
		ToastUtils.show("退出成功");
	}
}
  • 軟體更新
// 檢查軟體更新,需要在我們後臺設定
new UpdateUtils().check(this);

六、混淆

# OkHttp
-keepattributes *Annotation*
-keep class com.squareup.okhttp.** { *; }
-keep interface com.squareup.okhttp.** { *; }
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-dontwarn com.squareup.okhttp.**
-dontwarn okhttp3.logging.**
-keep class okhttp3.internal.**{*;}
-dontwarn okio.**

# EventBus
-keepattributes *Annotation*
-keepclassmembers class * {
    @org.greenrobot.eventbus.Subscribe <methods>;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }
-keepclassmembers class * extends org.greenrobot.eventbus.util.ThrowableFailureEvent {
    <init>(java.lang.Throwable);
}

# glide圖片快取
-keep public class * implements com.bumptech.glide.module.GlideModule
-keep class com.bumptech.glide.** { *; }
-keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** {
    **[] $VALUES;
    public *;
}

# RecyclerAdapter
-keep class com.chad.library.adapter.** {
    *;
}
-keep public class * extends com.chad.library.adapter.base.BaseQuickAdapter
-keep public class * extends com.chad.library.adapter.base.BaseViewHolder
-keepclassmembers  class **$** extends com.chad.library.adapter.base.BaseViewHolder {
     <init>(...);
}
-keepattributes InnerClasses

# Gson
-keep class com.google.gson.stream.** { *; }
-keepattributes EnclosingMethod

# 友盟umeng
-keep class com.umeng.** {*;}
-keepclassmembers class * {
   public <init> (org.json.JSONObject);
}
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

# 阿里百川
-keepattributes Signature
-ignorewarnings
-keep class com.houhoudev.** {*;}
-keepclassmembers class com.houhoudev.** {*;}
-keep class javax.ws.rs.** { *; }
-keep class com.alibaba.fastjson.** { *; }
-dontwarn com.alibaba.fastjson.**
-keep class sun.misc.Unsafe { *; }
-dontwarn sun.misc.**
-keep class com.taobao.** {*;}
-keep class com.alibaba.** {*;}
-keep class com.alipay.** {*;}
-dontwarn com.taobao.**
-dontwarn com.alibaba.**
-dontwarn com.alipay.**
-keep class com.ut.** {*;}
-dontwarn com.ut.**
-keep class com.ta.** {*;}
-dontwarn com.ta.**
-keep class org.json.** {*;}
-keep class com.ali.auth.**  {*;}
-dontwarn com.ali.auth.**
-keep class com.taobao.securityjni.** {*;}
-keep class com.taobao.wireless.security.** {*;}
-keep class com.taobao.dp.**{*;}
-keep class com.alibaba.wireless.security.**{*;}
-keep interface mtopsdk.mtop.global.init.IMtopInitTask {*;}
-keep class * implements mtopsdk.mtop.global.init.IMtopInitTask {*;}

七、更新紀錄檔

  • v1.2.3(2020-10-13)
    新增返利功能(需部署自己的伺服器)
    新增我的訂單功能(需配合返利使用)
    新增品牌模組
  • v1.0.9(2020-01-04)
    新增發現Fragment、Activity
    新增首頁商品標題檢測
    修改首頁Fragment引數客製化
  • v1.0.3(2019-10-30)
    新增商品視訊詳情功能
    新增首頁活動彈窗、懸浮入口
    優化金幣提現功能
  • v1.0.2(2019-10-15)
    首個版本