TaokeSdk

Project Url: houhoudev/TaokeSdk
Introduction: 淘宝客 SDK,一键导入淘宝客商城,快速实现流量变现。支持淘宝授权登录、免登录;一键接入各种商城模块 ; 一键配置淘宝客推广位,赚取收益
More: Author   ReportBugs   
Tags:

@TOC

在这里插入图片描述

  • 成功案例

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

    二、关于 SDK

    • 支持淘宝授权登录、免登录
    • 一键接入各种商城模块
    • 一键配置淘宝客推广位,赚取收益
    • 体积小,增量约为 5M 左右

      三、接入前准备

  • 1、注册淘宝联盟,获取推广位 id,注册链接:https://pub.alimama.com/
  • 2、注册阿里百川,获取电商权限、安全图片,注册链接:https://baichuan.taobao.com/

    四、全局参数配置

    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
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools