iOS小课堂: 集成 《阿里百川》教程

449 阅读2分钟

“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 20 天,点击查看活动详情

前言

  • 打开商品详情页
  • 淘宝账号授权登录
  • 完成交易闭环

产品闭环的组成要素:市场、转化、留存、口碑

I 打开商品详情页面


调用百川SDK方法,在App内利用百川SDK 自带 webview打开淘宝h5详情页

II 淘宝账号授权登录


电商能力SDK默认会集成淘宝登录SDK功能,无需重复接入 首次交易要授权登录,之后90天内不用再次授权

2.2 集成文档

文档地址: 点击查看 。iOS需要填写BundleID 。BundleID要是当前应用的BundleID。勾选淘宝登录基础包下载SDK。

注意事项:将下载的SDK中的身份图片yw_1222.jpg 复制到xcode工程下,并copy到BundleResources里,注意不能改名。

集成文档

IOS参见:IOS 登录使用说明

APP内淘宝交易闭环实现

  • 接入文档

接入准备

接入文档

2.3 Cocoapod方式引入百川SDK 上


cocoapods 官方source是隐式的需要的,一旦你指定了其他source 你就需要也把官方的指定 请先添加百川的源

pod repo add AliBCSpecs http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecs.git

然后在你工程的Podfile添加(具体版本以百川开发者网站为准)


source 'http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecs.git'
pod 'AlibcTradeSDK'

此时注意确保声明

source 'http://repo.baichuan-ios.taobao.com/baichuanSDK/AliBCSpecs.git'
source 'https://github.com/CocoaPods/Specs.git'

III 常见错误


注意事项:将下载的SDK中的身份图片yw_1222.jpg 复制到xcode工程下,并copy到BundleResources里,注意不能改名。

3.2 读取身份图片AppKey失败,

  • 请确认图片与BundleID是否匹配." UserInfo={NSLocalizedDescription=读取身份图片AppKey失败, 请确认图片与BundleID是否匹配

我是使用pod 进行管理的,版本是V3.1.1 ,安全图片生成的时候要采用V4

IV iOS小技能: UISearchBar 搜索框使用教程

设置UISearchBar 的_UISearchBarSearchFieldBackgroundView 控件的圆角

+ (UISearchBar*)homesearchBar {
    UISearchBar *searchBar = [[UISearchBar alloc]init];
    [searchBar setImage:[UIImage imageNamed:@"search"]
       forSearchBarIcon:UISearchBarIconSearch state:UIControlStateNormal];
    searchBar.placeholder = searchBarPlaceholder;
    [searchBar changeLeftPlaceholder:searchBar.placeholder];
    //    设置cornerRadius
    UIView* backgroundView = [searchBar subViewOfClassName:@"_UISearchBarSearchFieldBackgroundView"];
    backgroundView.layer.cornerRadius = 14.50f;
    backgroundView.clipsToBounds = YES;
    return searchBar;
}

4.1、iOS去掉UISearchBar搜索框的放大镜

blog.csdn.net/z929118967/…

   UITextField *searchTextField  = [searchBar valueForKey:@"_searchField"];
    searchTextField.leftView = nil;


V 预备知识

查找子类对象: subViewOfClassName


- (UIView*)subViewOfClassName:(NSString*)className {
    for (UIView* subView in self.subviews) {
        if ([NSStringFromClass(subView.class) isEqualToString:className]) {
            return subView;
        }
        
        UIView* resultFound = [subView subViewOfClassName:className];
        if (resultFound) {
            return resultFound;
        }
    }
    return nil;
}