-
Notifications
You must be signed in to change notification settings - Fork 28
接入指南
pepperer edited this page Aug 7, 2023
·
17 revisions
- 在项目根目录的build.gradle中声明maven仓库, 如下所示:
allprojects {
repositories {
jcenter()
maven { url 'http://maven.youzanyun.com/repository/maven-releases' }
}
}
- 在子项目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" />
<!-- 检测联网方式, 区分用户设备使用的是2G、3G或是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" />
特殊权限说明:
- 获取地址权限是用于多网点的店铺将可以选择附近的门店
- 外部存储读写权限是用于文件选择
- 网络状态权限是用于处理网络
在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。