Skip to content
淘宝客SDK,一键导入淘宝客商城,快速实现流量变现。支持淘宝授权登录、免登录;一键接入各种商城模块 ; 一键配置淘宝客推广位,赚取收益
Java Kotlin
Branch: master
Clone or download
lijunjie
lijunjie v1.0.9
Latest commit 3ba5dd2 Jan 4, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
app
gradle/wrapper
.gitignore
README.md
build.gradle v1.0.2 Oct 16, 2019
gradle.properties
gradlew
gradlew.bat
settings.gradle

README.md

@TOC

一、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.0.9.2'
// 商城基础
implementation 'com.houhoudev:store:1.0.9.4'
// 用户基础
implementation 'com.houhoudev:user:1.0.9'
// 扫描二维码
implementation 'com.houhoudev:zxing:1.0.9'
  • 组件中已经包含了如下组件,请勿重复导入
// 图片缓存
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:3.10.0'
// 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 '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.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 fragment = new FindFragment();
// 发现Activity
StoreSdk.startPeopleAct(this);

在这里插入图片描述        在这里插入图片描述

// 我的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.0.9(2020-01-04)

新增发现Fragment、Activity

新增首页商品标题检测

修改首页Fragment参数定制

  • v1.0.3(2019-10-30)

新增商品视频详情功能

新增首页活动弹窗、悬浮入口

优化金币提现功能

  • v1.0.2(2019-10-15)

首个版本

八、支持

  • QQ 2276280645
  • 微信 lijunjie8579
You can’t perform that action at this time.