公司最近要做第三方登錄习柠,由于是做導(dǎo)購項目疏魏,必不可少的有淘寶的授權(quán)登錄。本來就是一個授權(quán)登錄钳踊,沒什么大不了的衷敌。但淘寶的無線開放業(yè)務(wù)——阿里百川更新的最新版本3.1.1.96,開發(fā)文檔不是不詳細(xì)拓瞪,是很不詳細(xì)缴罗。
于是乎就自己摸著石頭過河了,還好自己搞出來了祭埂。
雖說淘寶的文檔不詳細(xì)面氓,但有些必須的說明還是要看的。
接入之前要先看看:
準(zhǔn)備工作
百川接入說明
SDK3.1接入文檔
這些還是有作用的。
注意事項:
1侧但、阿里百川的依賴庫一定要添加完整了矢空。否則會初始化失敗禀横!
依賴庫
注意:貌似少了一個libsqlite.tbd庫屁药。
2、在初始化阿里百川的時候柏锄,若沒有禁止https的網(wǎng)絡(luò)請求酿箭,回報下面情況,而沒有報錯
阿里百川初始化
3趾娃、一定要注意的是:yw_1222.jpg圖片缭嫡,這張圖片是自己從阿里百川的后臺,根據(jù)自己的app ID和Bundle Identifier 生成的獨有的圖片抬闷,每個應(yīng)用的都不一樣妇蛀。不要直接使用別人的,否則初始化失敗 笤成。
4评架、下載的阿里百川最新的《百川電商sdk》,一定要記得申請API調(diào)用并開通權(quán)限炕泳。
申請API
開通權(quán)限
5纵诞、如果你集成了支付寶錢包,現(xiàn)在又要集成阿里百川培遵,你會發(fā)現(xiàn)下面錯誤:
阿里百川與支付寶沖突
看到這個不要怕浙芙,這只是阿里百川中的UTDID文件與支付寶錢包沖突所致。
解決辦法很簡單:把UTDID文件刪除就OK了籽腕。
解決辦法
6嗡呼、想做淘寶登錄都不知道添加那個頭文件了吧!在最新的3.1.1.96版本中已經(jīng)引用不到#import <ALBBLoginSDK/ALBBLoginService.h>頭文件了节仿。也沒有文檔說引用什么頭文件晤锥,只是論壇里有說查看SDK中的AlibabaAuthSDK文件掉蔬。
要想引用AlibabaAuthSDK里面的文件廊宪,要添加頭文件:#import <AlibabaAuthSDK/ALBBSDK.h>即可。沒人告訴你也要費一翻周折的女轿。
授權(quán)代碼截圖如下:
授權(quán)代碼截圖
代碼如下(方便復(fù)制粘貼):
//獲取授權(quán)
- (IBAction)taobaoAothBtn:(id)sender {
ALBBSDK *albbSDK = [ALBBSDK sharedInstance];
[albbSDK setAppkey:@"填寫你應(yīng)用的appkey"];
[albbSDK setAuthOption:NormalAuth];
[albbSDK auth:self successCallback:^(ALBBSession *session){
ALBBUser *user = [session getUser];
NSLog(@"session == %@, user.nick == %@,user.avatarUrl == %@,user.openId == %@,user.openSid == %@,user.topAccessToken == %@",session,user.nick,user.avatarUrl,user.openId,user.openSid,user.topAccessToken);
} failureCallback:^(ALBBSession *session,NSError *error){
NSLog(@"session == %@,error == %@",session,error);
}];
}
//退出授權(quán)
- (IBAction)taobaoExitBtn:(id)sender {
ALBBSDK *albbSDK = [ALBBSDK sharedInstance];
[albbSDK logout];
}
至此淘寶的授權(quán)完成箭启。希望有所幫助!
調(diào)用淘寶客戶端商品詳情頁
方法一:向iOS 通過URL Scheme調(diào)用淘寶客戶端商品詳情頁這篇文章說的就可以蛉迹。將鏈接直接改為taobao://開頭傅寡,簡單快速,就是有點不正規(guī)。
方法二:就是使用官方的API文檔的下面的方法(詳情參看阿里百川的文檔):
/**
* 使用isv自己的webview打開page荐操,可以實現(xiàn)淘寶賬號免登以及電商交易支付流程
*
* @param parentController webView所在的view controller.
* @param webView isv自己的webview,請先設(shè)置好自己的delegate先調(diào)用本接口,否則攔截登陸等邏輯會失效
* @param page 想要打開的page
* @param showParams 打開方式的一些自定義參數(shù)
* @param taoKeParams 淘客參數(shù)
* @param trackParam 鏈路跟蹤參數(shù)
* @param tradeProcessSuccessCallback 交易流程中成功回調(diào)(加購成功/發(fā)生支付)
* @param tradeProcessFailedCallback 交易流程中退出或者調(diào)用發(fā)生錯誤的回調(diào)
*
* @return 0: 標(biāo)識跳轉(zhuǎn)到手淘打開了
1: 標(biāo)識用h5打開
-1: 標(biāo)識出錯
*/
- (NSInteger) show:(UIViewController * __nonnull)parentController
webView:(nullable UIWebView*)webView
page:(id<AlibcTradePage> __nonnull)page
showParams:(nullable AlibcTradeShowParams*)showParams
taoKeParams:(nullable AlibcTradeTaokeParams *)taoKeParams
trackParam:(nullable NSDictionary*)trackParam
tradeProcessSuccessCallback:(nullable void (^)(AlibcTradeResult * __nullable result))onSuccess
tradeProcessFailedCallback:(nullable void (^)(NSError * __nullable error))onFailure;