做资料分享网站,网络维护协议,文章生成器免费版,wordpress重定向seo上一篇#xff1a;Flutter插件的制作和发布#xff0c;我们已经了解了如何制作一个通用的双端插件#xff0c;本篇就带领大家将阿里百川双端sdk制作成一个flutter插件供项目调用#xff01; 目录 登录并打开控制台#xff0c;创建应用#xff1a;填写应用相关信息开通百川…上一篇Flutter插件的制作和发布我们已经了解了如何制作一个通用的双端插件本篇就带领大家将阿里百川双端sdk制作成一个flutter插件供项目调用 目录 登录并打开控制台创建应用填写应用相关信息开通百川电商SDK申请安全图片下载SDK 创建插件项目将ios端sdk下的framework和bundle文件夹复制到插件工程的ios目录下编辑podspec编辑主工程Podfile使用Android Studio编译运行 XCode打开IOS工程根据开发文档其它相关配置引入百川SDK头文件进行功能编写Flutter端编写通信方法后运行AndroidStudio打开android工程引入百川SDK相关类进行功能编写 打开阿里百川网站https://baichuan.taobao.com/
登录并打开控制台创建应用 填写应用相关信息 注意这里需要填写项目双端包名最后生成安全图片时安卓端会要求上传apk空包验证包名和签名ios端会要求提交Bundle ID。
SDK版本本篇以标准版4.x为例所以我们选择标准版app下载地址可以随意填写一个
开通百川电商SDK 申请安全图片
申请地址https://suite.baichuan.taobao.com/ 安卓端提交apkios端提交bundleId 注意一定要选择v6两端的安全图片下载成功后改名为yw_1222_baichuan.jpg新版sdk要求并保存以待后面使用
下载SDK
下载地址阿里百川SDK 下载4.x的标准版本5.x的旗舰版和4.x的标准版在功能上的区别在于5.x提供了二次登录授权可以传入任意appkey以申请accessToken 本篇以4.x标准版为例接入
创建插件项目 插件名即alikit4按上一篇Flutter插件的制作过程确认项目编译运行成功后开始按阿里百川ios4.x接入文档接入sdk
将ios端sdk下的framework和bundle文件夹复制到插件工程的ios目录下 编辑podspec
打开alikit4.podspec添加Framework和资源依赖路径以及其它系统Framework和library s.vendored_frameworks framework/**/*.frameworks.resources [bundle/*.bundle]s.frameworks JavaScriptCore,CoreMotion,CoreTelephonys.libraries resolv,c,icucore,sqlite3fs.vendored_frameworks ramework/**/.framework 即ios插件目录下framework文件夹下的所有二级文件夹下的所有Framework s.resources [bundle/.bundle’] 插件引用的资源路径 s.frameworks ‘JavaScriptCore’,‘CoreMotion’,‘CoreTelephony’ 插件所需要的系统库 s.libraries ‘resolv’,‘c’,‘icucore’,‘sqlite3’ 插件所需要的系统library
另如果插件需要通过pods安装远程库则写法为
s.dependency Masonry,1.1.0
s.dependency FMDB,2.7.5这里仅是举例4.x标准版SDK不需要
编辑主工程Podfile
在target ‘Runner’ do下添加use_modular_headers!否则有可能报错
使用Android Studio编译运行
此过程会自动进行pod install及ios端的环境配置当然有可能会运行失败无论成功失败此时便可使用XCode打开ios工程依据开发文档进行相关配置
XCode打开IOS工程
将ios端的安全图片拖入到主工程Runner下另有一个名为mtopsdk_configuration.plist的文件一并拖入可下载阿里百川demo复制过来即可 注意你的bundleId一定要与你的安全图片一致 根据开发文档其它相关配置
1.添加系统库我们在podspec中已经配置 2.添加编译参数按照文档添加方法在other linker flag中添加即可 3.配置URL Types按照文档添加方式添加注意是自己的appkey即可
URL Scheme为tbopen{AppKey},如tbopen123456 4.配置info.plist
1在info.plist中,增加LSApplicationQueriesSchemes字段,并添加tbopen,tmall 2配置ATS, 允许HTTP请求 如果plist中没有以上项目可以点击号手动添加也可以直接使用代码添加
URL Scheme keyCFBundleURLTypes/keyarraydictkeyCFBundleTypeRole/keystringEditor/stringkeyCFBundleURLName/keystringalibaichuan/stringkeyCFBundleURLSchemes/keyarraystringtbopen123456/string/array/dict/arrayLSApplicationQueriesSchemes
keyLSApplicationQueriesSchemes/keyarraystringtmall/stringstringtbopen/string/arrayATS keyNSAppTransportSecurity/keydictkeyNSAllowsArbitraryLoads/keytrue//dict然后执行编译看是否成功一般的都没什么问题如果有问题就具体问题具体对待。
注意以上所有配置均是在主工程Runner下配置
引入百川SDK头文件进行功能编写 编译通过后所引用的Framework会全部显示在这里。
打开Alikit4Plugin.m导入阿里头文件
#import AlibcTradeSDK/AlibcTradeSDK.h如未报错并可以进入到该头文件内部则表示sdk已经引入成功接下来就可以愉快的进行功能开发了
这里仅拿初始化方法举例
if ([init isEqualToString:call.method]) {// 百川平台基础SDK初始化加载并初始化各个业务能力插件[[AlibcTradeSDK sharedInstance] setDebugLogOpen:YES];[[AlibcTradeSDK sharedInstance] asyncInitWithSuccess:^{NSLog(百川SDK初始化成功);result({ code:0});} failure:^(NSError *error) {NSLog(百川SDK初始化失败);result({ code:-1,msg:error.description});}];} 另外需要注意的是ios端需要在AppDelegate中进行一些配置
//IOS9.0 系统新的处理openURL 的API
- (BOOL)application:(UIApplication *)applicationopenURL:(NSURL *)urloptions:(NSDictionaryNSString *,id *)options {if (available(iOS 9.0, *)) {__unused BOOL isHandledByALBBSDK[[AlibcTradeSDK sharedInstance]application:applicationopenURL:urloptions:options];} else {// Fallback on earlier versions}//处理其他app跳转到自己的app如果百川处理过会返回YESreturn YES;
}- (void)scene:(UIScene *)scene openURLContexts:(NSSetUIOpenURLContext * *)URLContexts API_AVAILABLE(ios(13.0)){[URLContexts enumerateObjectsUsingBlock:^(UIOpenURLContext * _Nonnull obj,BOOL * _Nonnull stop) {if([[AlibcTradeSDK sharedInstance] application:nilopenURL:obj.URLoptions:nil]){*stop YES;}}];
}swift写法
1桥接文件中引入百川头文件#import “AlibcTradeSDK/AlibcTradeSDK.h”
2AppDelegate中添加 override func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] [:]) - Bool {AlibcTradeSDK.sharedInstance().application(app, open: url, options: [:])return super.application(app, open: url, options: options)}Flutter端编写通信方法后运行 返回{“code”:0}即代表初始化成功由于模拟器未安装淘宝所以打开的是网页版
AndroidStudio打开android工程 将安卓端sdk放入安卓插件工程的libs文件夹下并修改插件工程下的build.gradle添加
dependencies {implementation fileTree(include: [*.jar], dir: libs)compileOnly fileTree(include: [*.aar], dir: libs)implementation com.alibaba:fastjson:1.2.69
}同时将sdk中的所有aar文件往主工程的libs文件夹下复制一份 修改主工程下的build.gradle
dependencies {implementation fileTree(dir: libs, include: [*.jar])implementation fileTree(dir: libs, include: [*.aar])
}
注意看区别插件工程对aar使用的是compileOnly主工程是implementation
另外在主工程的build.gradle配置上你的签名信息 这一步骤应在你申请安全图片之前就以配置好可以保证安全图片与你的包名以及签名一致否则会导致百川sdk初始化失败
添加安全图片到主工程res/drawable下 执行Sync编译 编译通过后即可在Alikit4Plugin中编写功能代码了
引入百川SDK相关类进行功能编写
import com.alibaba.baichuan.android.trade.AlibcTrade;
import com.alibaba.baichuan.android.trade.AlibcTradeSDK;
import com.alibaba.baichuan.android.trade.callback.AlibcTradeInitCallback;if (call.method.equals(init)) {AlibcTradeSDK.asyncInit((Application) context, new AlibcTradeInitCallback() {Overridepublic void onSuccess() {result.success(getResult(0));}Overridepublic void onFailure(int code, String msg) {result.success(getResult(-1, code msg));}});}gitee地址alikit4