螞蟻動態(tài)卡片目前支持 基于 mPaaS 框架接入、基于已有工程且使用 mPaaS 插件接入 和 基于已有工程且使用 CocoaPods 接入 三種接入方式,本文介紹了采用上述方式接入螞蟻動態(tài)卡片和使用螞蟻動態(tài)卡片的過程。
前置條件
您已經接入工程到 mPaaS。更多信息,請參見以下內容:
已經安裝螞蟻動態(tài)卡片 AntCubeTool 工具。更多詳情請參見 關于 AntCubeTool。
如果有更多接入相關問題,歡迎搜索群號 32843812 加入釘釘群進行咨詢交流。該釘釘群已添加 mPaaS 公有云答疑小助手,能夠快速回答常見接入問題。更多關于使用公有云答疑小助手的信息,請參見 公有云答疑小助手。
操作步驟
選擇定制基線。
螞蟻動態(tài)卡片目前在自定義基線
cp_change_15200851
版本中提供。根據您采用的接入方式,請選擇相應的添加方式。使用 mPaaSPlugin 插件。
此方式適用于采用了 基于 mPaaS 框架接入 或 基于已有工程且使用 mPaaS 插件接入 的接入方式。
單擊 Xcode 菜單項 Editor > mPaaS > 編輯工程 > 升級基線,切換工程到
cp_change_15200851
定制基線。說明如果 升級基線 不可點,請確保工程配置已經導入,參考 前置條件 打開編輯工程頁面。
升級基線后,單擊 編輯模塊 > 修改模塊,選擇 Cube 卡片(當前版本強依賴小程序,需要同時選擇 Ariver 小程序 組件),保存后單擊 開始編輯,即可完成添加。
使用 cocoapods-mPaaS 插件。
此方式適用于采用了 基于已有工程且使用 CocoaPods 接入 的接入方式。
在 Podfile 文件中執(zhí)行如下操作。
修改 mPaaS_baseline 為 cp_change_15200851。
使用 mPaaS_pod "mPaaS_Cube" 添加 Cube 卡片組件依賴。
當前版本強依賴小程序,需要使用 mPaaS_pod "mPaaS_Ariver" 添加小程序組件。
執(zhí)行
pod install
即可完成接入。
初始化卡片。
編譯 Xcode 工程。如果遇到頭文件找不到的情況,請打開選項,將
Allow Non-modular Includes In Framework Modules
置為Yes
。如下圖所示:引入 Cube 卡片需要的庫。
#import <CubeCrystal/CubeEngine.h> #import <AntCube/CubeService.h>
使用單例初始化卡片引擎。
- (void)initEngie{ static dispatch_once_t onceToken; NSString *mockBundlePath = [NSString stringWithFormat:@"%@/%@/crystal", [[NSBundle mainBundle] resourcePath], @"MPCubeDemo.bundle"]; dispatch_once(&onceToken, ^{ CubeEngineConfig* config = [[CubeEngineConfig alloc] init]; [config setBundlePath:mockBundlePath]; [[CubeService sharedInstance] initWithConfig:config]; }); }
構建一個卡片工程。
初始化工程。在終端里執(zhí)行
act init
命令。請選擇應用類型為 Cube ,選擇模板卡片 (VUE 格式)。
請輸入應用名稱,輸入您的項目名稱,建議采用英文、數字和下劃線的組合。
請不要選擇“應用在支付寶客戶端卡片業(yè)務場景”。
請選擇“需要額外創(chuàng)建工程源碼文件夾”,會額外以應用名稱建立一個文件夾。如果選擇不需要,會在當前目錄直接初始化。
構建工程。使用
cd
命令打開剛創(chuàng)建的卡片工程,運行act build
完成構建。構建完的產物會在您的工程的/dist/
文件夾下。
發(fā)布卡片。
進入卡片后臺。
單擊 新建卡片。
卡片 ID 建議使用英文、數字和下劃線的組合,客戶端渲染卡片時會依賴卡片 ID。卡片名稱可以取任意值。
添加卡片資源。
建議使用 4 位版本號。
選擇剛才編譯的 main.zip。
客戶端范圍指的是可以拉取到該卡片的客戶端版本。如果要覆蓋所有客戶端版本,在最低版本中填入 0.0.0.0 即可。
發(fā)布卡片。
單擊 創(chuàng)建發(fā)布。
選擇 正式發(fā)布。
卡片發(fā)布成功后,客戶端就可以拉取到卡片。
渲染卡片。
//創(chuàng)建卡片對象 CubeCardConfig *cardConfig = [[CubeCardConfig alloc] init]; //配置卡片版本(必填),從控制臺復制 [cardConfig setVersion:@"1.0.0.0"]; //配置卡片 ID(必填),從控制臺復制 [cardConfig setTemplteId:@"20211118"]; //預設卡片寬度 [cardConfig setWidth:[UIScreen mainScreen].bounds.size.width]; //預設卡片高度 [cardConfig setHeight:350]; //設置卡片數據(必填)參數為業(yè)務 JSON 數據。 [cardConfig setData:@{}]; //加載卡片 [[[CubeService sharedInstance] getEngine] createCard:cardConfig callback:self];
卡片取 key :"iosImage",會獲取到 key :"iosImage" 對應的 value 值,如下代碼所示:
[self.cardConfig setData:@{@"iosImage":@"https://img.zcool.cn/community/013edb5c7b5b1ca801213f269fc887.jpg@1280w_1l_2o_100sh.jpg"}];
創(chuàng)建卡片后的代理方法需要遵循代理
CCardCallback
,并且需要實現onLoaded:cardType:config:erroCode
協議方法。- (void)onLoaded:(CubeCard *)card cardType:(CCardType)cardType config:(CubeCardConfig *)config erroCode:(CubeCardResultCode)erroCode { //創(chuàng)建卡片失敗 if (!card) { NSLog(@"load card fail %@ style %d error %d", [config templteId], cardType, erroCode); return; } //創(chuàng)建成功 self.card = card; //需要持有卡片,才可以進行操作 NSLog(@"load card success %@ style %d error %d", [config templteId], cardType, erroCode); dispatch_async(dispatch_get_main_queue(), ^{ CubeView *view = [[[CubeService sharedInstance] getEngine] createView]; CGSize size = [card getSize]; [view setFrame:CGRectMake(0, 320, size.width, size.height) ]; [self.view addSubview:view]; [self.card renderView:view]; }); }
效果預覽。