ABEWalletSDK介绍iOS端

第一步:添加白名单

在iOS 9知乎涉及到平台客户端跳转,系统会自动到项目info.plist下检测是否设置平台Scheme。对于需要配置的平台,如果没有配置,就无法正常跳转平台客户端。因此要支持客户端的分享和授权等,需要配置Scheme名单。

具体方法:
1)、在项目的info.plist中添加一LSApplicationQueriesSchemes,类型为Array。
2)、然后给它添加一个需要支持的项目,类型为字符串类型;

image.png

第二步:在需要发送交易或者消息签名的地方发送跳转请求

object版本:

    NSString *abeWalletStr = @"abewallet://sign-transaction?to=0x923c8821A5aef16f4594171053d26466d933630D&amount=0.1";
    NSURL *abeWalletURL = [NSURL URLWithString:abeWalletStr];
    if ([[UIApplication sharedApplication] canOpenURL:abeWalletURL]){
        if ([[UIApplication sharedApplication] respondsToSelector:@selector(openURL:options:completionHandler:)]) {
            [[UIApplication sharedApplication] openURL:abeWalletURL options:@{}
               completionHandler:^(BOOL success) {
               }];
        } else {
            //兼容ios9以下
            [[UIApplication sharedApplication] openURL:abeWalletURL];
        }
    }else{
        //未能调用起ABE钱包,前往苹果store下载
        NSString *itunesurl = @"itms-apps://itunes.apple.com/cn/app/id1435582714";
        [[UIApplication sharedApplication] openURL:[NSURL URLWithString:itunesurl]];
    }

swift版本:

    //参考的一条交易链接
    let abeWalletStr:String = "abewallet://sign-transaction?to=0x923c8821A5aef16f4594171053d26466d933630D&amount=0.1"
    let abeWalletURL:URL = URL(string: abeWalletStr)!
    if (UIApplication.shared.canOpenURL(abeWalletURL)){
        //判断链接能否调用
        if #available(iOS 10.0, *) {
            UIApplication.shared.open(abeWalletURL, options: [:], completionHandler: nil)
        } else {
            UIApplication.shared.openURL(abeWalletURL)
        }
    }else{
        //未能调用起ABE钱包,前往苹果store下载
        let itunesurl:String = "itms-apps://itunes.apple.com/cn/app/id1435582714"
        UIApplication.shared.open(URL(string: itunesurl)!, options: [:], completionHandler: nil)
    }

最后介绍三种调用类型以及分析请求链接

abewallet://sign-transaction?to=0x923c8821A5aef16f4594171053d26466d933630D&amount=0.1

【abewallet://】 【sign-transaction?】 【to=0x923c8821A5aef16f4594171053d26466d933630D&amount=0.1】
abe钱包URLScheme 三种调用类型之一在"?"之前 传递的参数用“&”分隔,具体各种类型有对应的不同参数下文会有介绍

一、签署交易sign-transaction

对应参数有:
to:消息的接受地址比如“0x923c8821A5aef16f4594171053d26466d933630D”
amount:发送的数量比如“0.1”
data:transaction中的payload需要是Hex加密后的数据

二、签署一条消息sign-message

对应参数有:
message:传递的消息需要经过“base64加密”类似“欢迎使用ABEWallet”加密变成“JXU2QjIyJXU4RkNFJXU0RjdGJXU3NTI4QUJFV2FsbGV0JTBB”
address:消息的接受地址比如“0x923c8821A5aef16f4594171053d26466d933630D”

三、签署个人信息sign-personal-message

对应参数有:
message:传递的消息需要经过“base64加密”类似“欢迎使用ABEWallet”加密变成“JXU2QjIyJXU4RkNFJXU0RjdGJXU3NTI4QUJFV2FsbGV0JTBB”
address:消息的接受地址比如“0x923c8821A5aef16f4594171053d26466d933630D”

你可能感兴趣的:(ABEWalletSDK介绍iOS端)