Skip to content

接入指南

pepperer edited this page Aug 7, 2023 · 17 revisions

引入SDK

  1. 在项目根目录的build.gradle中声明maven仓库, 如下所示:
allprojects {
    repositories {
        jcenter()
        maven { url 'http://maven.youzanyun.com/repository/maven-releases' }
    }
}
  1. 在子项目build.gradle的dependencies中引入依赖:

目前提供了两种开店SDK。一种是集成了腾讯X5内核,兼容性好,性能好,对视频的支持优秀,增加安装包大小大约400k。另一种是基于Android原生的WebView,兼容性较差。推荐使用集成了X5内核的版本。

基于腾讯x5内核的开店SDK:

  implementation 'com.youzanyun.open.mobile:x5sdk:最新版本',{
        exclude group: 'com.youzan.mobile', module: 'x5official'
    }

基于Android原生WebView的开店SDK:

  implementation 'com.youzanyun.open.mobile:basic:最新版本'

混淆规则

# Youzan SDK
-dontwarn com.youzan.**
-keep class com.youzan.jsbridge.** { *; }
-keep class com.youzan.spiderman.** { *; }
-keep class com.youzan.androidsdk.** { *; }
-keep class com.youzan.x5web.** { *; }
-keep class com.youzan.androidsdkx5.** { *; }
-keep class dalvik.system.VMStack { *; }
-keep class com.tencent.smtt.** { *; }
-dontwarn  com.tencent.smtt.**

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

# IM
-keep class com.youzan.mobile.zanim.model.** { *; }

-dontwarn java.nio.file.*
-dontwarn javax.annotation.**
-dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement

配置权限

从v6.4.1以后,权限由接入方自己在manifast文件中配置,下面是SDK用到的相关权限

    <!-- 允许应用程序联网 -->
    <uses-permission android:name="android.permission.INTERNET" />
    <!-- 检测联网方式, 区分用户设备使用的是2G3G或是WiFi -->
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <!-- 外部存储写入权限 -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <!-- 为了更好的体验需要获取地理信息的权限 (以下非必须权限) -->
    <uses-permission android:name="android.permission.ACCESS_GPS" />
    <uses-permission android:name="android.permission.ACCESS_ASSISTED_GPS" />
    <uses-permission android:name="android.permission.ACCESS_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />

特殊权限说明:

  • 获取地址权限是用于多网点的店铺将可以选择附近的门店
  • 外部存储读写权限是用于文件选择
  • 网络状态权限是用于处理网络

初始化SDK

在Application或者加载有赞页面之前对SDK进行初始化, 示例如下:

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        // 1.初始化SDK------------------------------
        // appKey可以前往<a href=":https://doc.youzanyun.com/doc#/content/35675/38923">获取安全码</a>
        // 腾讯X5版本使用
        InitConfig config =  InitConfig.builder()
                .clientId("你申请的client_id")
                .appkey("你申请的appKey")
                .adapter(new YouZanSDKX5Adapter())
                .initCallBack(new InitCallBack() {
                    @Override
                    public void readyCallBack(boolean b, String s) {
                        Log.e("SWTTEST","初始化回调:"+b+"   原因:"+s);
                    }
                })
                .advanceHideX5Loading(false)
                .build();
        YouzanSDK.init(getApplicationContext(),config);

        // Android原生WebView使用
         InitConfig config =  InitConfig.builder()
                .clientId("你申请的client_id")
                .appkey("")
                .adapter(new YouzanBasicSDKAdapter())
                .initCallBack(new InitCallBack() {
                    @Override
                    public void readyCallBack(boolean b, String s) {
                        Log.e("SWTTEST","初始化回调:"+b+"   原因:"+s);
                    }
                })
                .advanceHideX5Loading(false)
                .build();
        YouzanSDK.init(getApplicationContext(),config);
        // client_id即你在有赞申请的客户端标识(老用户用UA)

        // 2.(可选)预下载店铺主页------------------------------
      	// YouzanPreloader.preloadHtml(this, "preload_html_url");
      	// 对html预加载时调用, 提升html打开速度,preload_html_url不能是重定向页面
    }
}

由于有赞云App SDK集成了X5SDK,初始化时涉及相关权限,及设备信息获取,参考腾讯浏览服务SDK个人信息保护规则;为保证您在集成SDK之后,能够满足工信部相关合规要求,您应确保在App安装后首次冷启动时按照如下方式进行初始化。

确保App首次冷启动时,在用户阅读您的《隐私政策》并取得用户授权之后,才调用正式初始化函数YouzanSDK.init初始化SDK。反之,如果用户不同意《隐私政策》授权,则不能调用YouzanSDK.init初始化函数。一旦App获取到《隐私政策》的用户授权,后续的App冷启动,开发者应该保证在Applicaiton.onCreate函数中调用函数YouzanSDK.init。