最近有需求拉起淘宝客户端,所以看了看阿里自己的sdk----阿里百川,网上说会有冲突,但也没有解决,说技术文档很多坑,也没说坑在哪。。。。好怕自己也会掉坑,阿里百川应该要更新技术了,毕竟是给自己亲儿子做的。文档也不是很全面。
以下就介绍接入过程:
我的gradle版本是3.5.0,百川sdk是4.x
官网注册登录,创建应用,开通百川产品,套件申请等,这些都好整。到了坑了:上传apk下载安全图片!!!
我在flutter工程里生成的apk不行,用android项目工程打开生成的apk也不行,于是看官网问答:

7、上传APK失败,怎么解决?
	     请尝试以下方法:
	       1)降低APK大小
	       2)退出重新登录
	       3)使用空包,包名、签名信息和正式项目保持一致。

都尝试了一遍,毫无用处,实在没办法,他不是跟应用内容无关嘛,只要包名,签名一样,于是乎我就新建了一个安卓工程,包名,签名一样,上传apk成功了!!!安全图片的下载也是相当坑,之前写忘了这茬了,点击下载根本没反应,要右键新窗口打开再下载!!!!!什么神仙操作哦,我当时还迷茫了很久,安全图片要修改名称,具体也要以官网为准
Gradle接入方式
获得安全图片,并放在/res/drawable目录下,如果已经有安全图片,需要替换。
老用户升级,请先删除原来的所有jar & aar依赖
gradle配置
在整个项目的gradle基础配置文件中加入仓库地址:

allprojects {
 repositories {
   jcenter()
       maven {
            url "http://repo.baichuan-android.taobao.com/content/groups/BaichuanRepositories/"
        }
    }
}

在项目module的gradle文件中加入相关依赖

dependencies { 
 ..... 
 //登陆 
 implementation 'com.ali.auth.sdk:alibabauth_core:2.0.0.11@aar'
 implementation 'com.ali.auth.sdk:alibabauth_ui:2.0.0.11@aar'
 implementation 'com.ali.auth.sdk:alibabauth_ext:2.0.0.11@aar'
 //安全组件 
 implementation 'com.taobao.android:securityguardaar3:5.4.171@aar'
 implementation 'com.taobao.android:securitybodyaar3:5.4.99@aar'
 implementation 'com.taobao.android:avmpaar3:5.4.36@aar'
 implementation 'com.taobao.android:sgmiddletieraar3:5.4.9@aar'
 //Mtop 
 implementation 'com.taobao.android:mtopsdk_allinone_open:3.1.2.5@jar'
 //applink 
 implementation 'com.alibaba.sdk.android:alibc_link_partner:4.1.15@aar'
 //ut 
 implementation 'com.taobao.android:utdid4all:1.5.2'
 implementation 'com.alibaba.mtl:app-monitor-sdk:2.6.4.5_for_bc'
 // 电商基础组件 
 implementation 'com.alibaba.sdk.android:AlibcTradeCommon:4.0.0.16@aar'
 implementation 'com.alibaba.sdk.android:AlibcTradeBiz:4.0.0.16@aar'
 implementation 'com.alibaba.sdk.android:nb_trade:4.0.0.16@aar'
 implementation 'com.alibaba:fastjson:1.2.41@jar'
 ..... 
}

接入sdk成功之后还有坑,就是gradle版本是3.5.0以上的工程,编译运行后会初始化失败,code = 1,

5、初始化失败 AlibcSecurity init ErrorCode = 123
1)请先对照下4.X版本开发文档,看依赖是否为最新的
2)Android studio版本在3.5.0以上时可能会出现这个问题,可以把gradle plugin版本降到3.5.0 以下关闭instantrun即可
3)如果保持用3.5.0 android studio运行调试,可以卸载app,然后第一次通过 ./gradlew assembleDebug 打出完整apk,并安装运行,后面再使用android studio IDE中 debug按钮运行。

降低版本是不可能的了,于是我在android工程里用命令生成apk:./gradlew :app:assembleDebug,然后安装:

adb push  ./app/build/outputs/apk/debug/app-debug.apk   /sdcard/Android/data/包名
adb shell pm install --full -t -r " /sdcard/Android/data/包名"

初始化成功!!!

不集成百川,也能打开任何淘宝链接的方法

val url: String? = call.argument("url")
val intent = Intent(Intent.ACTION_VIEW, Uri.parse(url))//url = taobao://treck.tmall.com/                scheme一定要是taobao,若是http会跳转到网页
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
activity.startActivity(intent)

之前在网上搜索,很多如下所示,只能打开详情页,或者店铺页,有些链接还是会找不到店铺:

val intent: Intent? = activity.getPackageManager().getLaunchIntentForPackage("com.taobao.taobao")
intent?.setAction("Android.intent.action.VIEW")
val url: String? = call.argument("url")
val uri = Uri.parse(url) // 商品地址
intent?.setData(uri)
if(url!!.contains("detail",true)){
	intent?.setClassName("com.taobao.taobao", "com.taobao.tao.detail.activity.DetailActivity")
}else{
	intent?.setClassName("com.taobao.taobao", "com.taobao.android.shop.activity.ShopHomePageActivity")
}
activity.startActivity(intent)