iOS 集成阿里百川最新版(3.1.1.96) 实现淘宝授权登录以及调用淘宝客户端商品详情页
公司最近要做第三方登录,由于是做导购项目,必不可少的有淘宝的授权登录。本来就是一个授权登录,没什么大不了的。但淘宝的无线开放业务——阿里百川更新的最新版本3.1.1.96,开发文档不是不详细,是很不详细。
于是乎就自己摸着石头过河了,还好自己搞出来了。
虽说淘宝的文档不详细,但有些必须的说明还是要看的。
接入之前要先看看:
准备工作
百川接入说明
SDK3.1接入文档
这些还是有作用的。
注意事项:
1、阿里百川的依赖库一定要添加完整了。否则会初始化失败!

注意:貌似少了一个libsqlite.tbd库。
2、在初始化阿里百川的时候,若没有禁止https的网络请求,回报下面情况,而没有报错

3、一定要注意的是:yw_1222.jpg图片,这张图片是自己从阿里百川的后台,根据自己的app ID和Bundle Identifier 生成的独有的图片,每个应用的都不一样。不要直接使用别人的,否则初始化失败 。
4、下载的阿里百川最新的《百川电商sdk》,一定要记得申请API调用并开通权限。


5、如果你集成了支付宝钱包,现在又要集成阿里百川,你会发现下面错误:

看到这个不要怕,这只是阿里百川中的UTDID文件与支付宝钱包冲突所致。
解决办法很简单:把UTDID文件删除就OK了。

6、想做淘宝登录都不知道添加那个头文件了吧!在最新的3.1.1.96版本中已经引用不到#import <ALBBLoginSDK/ALBBLoginService.h>头文件了。也没有文档说引用什么头文件,只是论坛里有说查看SDK中的AlibabaAuthSDK文件。
要想引用AlibabaAuthSDK里面的文件,要添加头文件:#import <AlibabaAuthSDK/ALBBSDK.h>即可。没人告诉你也要费一翻周折的。
授权代码截图如下:

代码如下(方便复制粘贴):
//获取授权
- (IBAction)taobaoAothBtn:(id)sender {
ALBBSDK *albbSDK = [ALBBSDK sharedInstance];
[albbSDK setAppkey:@"填写你应用的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);
}];
}
//退出授权
- (IBAction)taobaoExitBtn:(id)sender {
ALBBSDK *albbSDK = [ALBBSDK sharedInstance];
[albbSDK logout];
}
至此淘宝的授权完成。希望有所帮助!
调用淘宝客户端商品详情页
方法一:向iOS 通过URL Scheme调用淘宝客户端商品详情页这篇文章说的就可以。将链接直接改为taobao://开头,简单快速,就是有点不正规。
方法二:就是使用官方的API文档的下面的方法(详情参看阿里百川的文档):
/**
* 使用isv自己的webview打开page,可以实现淘宝账号免登以及电商交易支付流程
*
* @param parentController webView所在的view controller.
* @param webView isv自己的webview,请先设置好自己的delegate先调用本接口,否则拦截登陆等逻辑会失效
* @param page 想要打开的page
* @param showParams 打开方式的一些自定义参数
* @param taoKeParams 淘客参数
* @param trackParam 链路跟踪参数
* @param tradeProcessSuccessCallback 交易流程中成功回调(加购成功/发生支付)
* @param tradeProcessFailedCallback 交易流程中退出或者调用发生错误的回调
*
* @return 0: 标识跳转到手淘打开了
1: 标识用h5打开
-1: 标识出错
*/
- (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;
iOS 集成阿里百川最新版(3.1.1.96) 实现淘宝授权登录以及调用淘宝客户端商品详情页的更多相关文章
- ios 集成阿里百川的坑-【SDK初始化-iOS】读取身份图片AppKey失败
最简易方法调用淘宝app: 引用文件 #import <AlibcTradeSDK/AlibcTradeSDK.h> AlibcWebViewController* view = [[Al ...
- iOS app url scheme跳转到淘宝商品详情页 唤醒app
最近涉及的一个业务,在app内的一个广告,点击打开webView,加载的是一个淘宝商品详情页,效果是打开该webView自动跳转至淘宝对应的页面,同时在自己的app仍然加载页面,点击评论等也同样能跳转 ...
- iOS - 小功能 跳转到淘宝或天猫的商品展示详情页
最近做iOS项目的时候遇到一个需求,点击广告页,跳转到淘宝或天猫的商品详情页. 具体需要是这样: 1)安装了淘宝:跳转到淘宝详情页. 2)没装淘宝,装了天猫:跳转到天猫详情页 3)淘宝.天猫都没装:跳 ...
- iOS-集成阿里百川IMSDK的服务端及客户端
搜了一下阿里百川, 发现文档很少, 于是就打算写一篇博客, 供后来者少华一些时间在集成和开发上. 客户端集成很简单, 官方文档写的也很清楚. 客户端的集成 Step1 下载SDK包 如果您已经获得De ...
- 用户说体验 | 关于阿里百川HotFix你需要了解的一些细节
最近很火的热修复技术,无意中了解到阿里百川也在做,而且Android.iOS两端都支持,所以决定试一试.试用一段时间后,感觉还不错,主要是他们有一个团队在不断维护更新这个产品,可以看到他们的版本更新记 ...
- 阿里百川码力APP监控 来了!
阿里百川码力APP监控 来了!这个APP监控 和手淘一起成长历经千锤百炼 走过千BUG万坑如今百川起产品 为了让你的APP更好 用户更爽! 在移动互联网时代,一款应用是否成功,用户体验是一个关键 ...
- 李洪强iOS之集成极光推送三iOS集成指南
李洪强iOS之集成极光推送三iOS集成指南 SDK说明 适用版本 本文匹配的 SDK版本:r2.1.5 以后.查看最近更新了解最新的SDK更新情况.使用Xcode 6及以上版本可以使用新版Push S ...
- 阿里百川HotFix2.0热修复初体验
博客原地址:http://blog.csdn.net/allan_bst/article/details/72904721 一.什么是热修复 热修复说白了就是"打补丁",比如你们公 ...
- 【微框架】Maven +SpringBoot 集成 阿里大鱼 短信接口详解与Demo
Maven+springboot+阿里大于短信验证服务 纠结点:Maven库没有sdk,需要解决 Maven打包找不到相关类,需要解决 ps:最近好久没有写点东西了,项目太紧,今天来一篇 一.本文简介 ...
随机推荐
- Simple JavaScript Inheritance(John Resig)
I’ve been doing a lot of work, lately, with JavaScript inheritance – namely for my work-in-progress ...
- D3.js系列——交互式操作和布局
一.图表交互操作 与图表的交互,指在图形元素上设置一个或多个监听器,当事件发生时,做出相应的反应. 交互,指的是用户输入了某种指令,程序接受到指令之后必须做出某种响应.对可视化图表来说,交互能使图表更 ...
- C#写的一个视频转换解码器
C#写的一个视频转换解码器 using System; using System.Collections.Generic; using System.Linq; using System.Text; ...
- 60分钟搞定JAVA加解密
从摩尔电码到小伙伴之间老师来了的暗号,加密信息无处不在.从军事到生活,加密信息的必要性也不言而喻. 今天,我们就来看看java怎么对数据进行加解密 分类 a.古典密码 -- 受限制算法:算法的保密性给 ...
- 倍福TwinCAT(贝福Beckhoff)常见问题(FAQ)-人机界面快速入门 TC3
右击添加一个PLC项,注意不要用中文 右击VISUs,添加一个视图对象 在POUs中打开MAIN,然后添加代码(定义了一个BOOL和一个INT类型变量) 工具箱中得到一个textfield ...
- getopt函数的用法
Linux提供了一个解析命令行参数的函数. #include <unistd.h> int getopt(int argc, char * const argv[], const char ...
- jQuery 文档操作 - insertAfter() ,insertBefore(),after(),before() 方法
这个方法跟prependTo()和appendTo()不一样的地方在于,一个是仍然插入到元素内部,而insertAfter和insertBefore是插入到元素外部. 这里拿insertBefore来 ...
- Flume入门样例
Flume 作为 cloudera 开发的实时日志收集系统,受到了业界的认可与广泛应用.Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 clo ...
- Quartz简介 用 Quartz 进行作业调度
http://www.ibm.com/developerworks/cn/java/j-quartz/现代的 Web 应用程序框架在范围和复杂性方面都有所发展,应用程序的每个底层组件也必须相应地发展. ...
- 【C语言天天练(二三)】errno变量
引言: 在C编程中,errno是个必不可少的变量.特别是在网络编程中. 假设你没实用过errno,那仅仅能说明你的程序不够健壮. 为什么会使用errno呢?这是系统库设计中的一个无奈之举.他很多其它的 ...