日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

初始化引擎擴展

本文介紹了在 iOS 客戶端中初始化引擎擴展的操作步驟。

前置條件

操作步驟

  1. 設置預置卡片本地路徑。

    • 設置卡片引擎類 CubeEngineConfig 的屬性。

      // 卡片引擎類 CubeEngineConfig 的屬性
      
      /// 存儲模版的本地資源包的路徑
      @property (nonatomic, strong) NSString *bundlePath;
    • 設置本地螞蟻動態卡片的 assets 路徑。

      - (void)initEngine {
          //本地模板所在的 Bundle 路徑
          NSString *bundlePath = [NSString stringWithFormat:@"%@/%@", [[NSBundle mainBundle] resourcePath], @"MPCubeBundle.bundle"];
          CubeEngineConfig *config = [[CubeEngineConfig alloc] init];
          //設置讀取資源路徑
          [config setBundlePath:bundlePath];
          //配置卡片引擎
          [[CubeService sharedInstance] initWithConfig:config];
      }
  2. 設置異常監聽。

    CubeEngineConfig 支持異常監聽,捕獲前端代碼異常??蛻舳诵枰裱?CExceptionListener 代理,實現監聽方法。

    // 卡片引擎類 CubeEngineConfig 的屬性
    
    /// 異常監聽
    @property (nonatomic, strong) id<CExceptionListener> exceptionListener;
    // CExceptionListener 代理類
    
    //  CrystalExceptionProtocol.h
    //  CubeCrystal
    //  Created by hejin on 2021/9/10.
    
    #import <Foundation/Foundation.h>
    #import "CExceptionInfo.h"
    #ifndef CExceptionListener_h
    #define CExceptionListener_h
    
    @protocol CExceptionListener <NSObject>
    
    @required
    
    /**
     異常監聽
     @param info 異常信息
     */
    - (void)onException:(CExceptionInfo *)info;
    
    @end
    @interface MPCubeManager () <CExceptionListener>
    
    - (void)initEngine {
        CubeEngineConfig *engineConfig = [[CubeEngineConfig alloc] init];
        //設置 delegate
        engineConfig.exceptionListener = self;
        [[CubeService sharedInstance] initWithConfig:engineConfig];
    }
    
    //實現監聽方法,打印監聽信息
    - (void)onException:(CExceptionInfo *)info {
        NSLog(@"異常類型:%lu", (unsigned long)info.type);
        NSLog(@"異常信息:%@", info.message);
        NSLog(@"異??ㄆ?id:%@", info.cardUid);
        NSLog(@"異常信息擴展參數:%@", info.extraInfo);
    }
  3. 設置網絡圖片下載 Handler。

    CubeEngineConfig 支持攔截 Image 下載,定制圖片參數;客戶端需要遵循 CKImageHandler 代理,實現監聽方法。

    // 卡片引擎類 CubeEngineConfig 的屬性
    
    /// 圖片 handler,如果為空,則內部默認實現,建議自定義 handler
    @property (nonatomic, strong) id<CKImageHandler> imageHandler;
    //  CKImageHandler.h
    //  CubePlatform
    //  Created by Joe on 2018/8/15.
    //  Copyright ? 2018年 mQuick. All rights reserved.
    
    #import <Foundation/Foundation.h>
    #import <UIKit/UIKit.h>
    
    #ifndef CKImageHandler_h
    #define CKImageHandler_h
    
    extern NSString *const CKImageAppInstanceIDKey; // 觸發加載圖片對應的 AppInstanceID
    extern NSString *const CKImagePageInstanceIDKey; // 觸發加載圖片對應的 PageInstanceID
    extern NSString *const CKImageInstanceOptionKey; // instance option. 針對 falcon 鏈路添加
    
    typedef void(^CKImageHandlerCallback)(UIImage *image, NSError *error);
    
    @protocol CKImageHandler <NSObject>
    
    @required
    /**
     @param url 圖片下載 URL
     @param size 圖片尺寸
     @param option 擴展參數,視圖片下載庫需求而定
     @param callback 下載回調,下載完成后通過此接口回調
     @return 返回表示本次下載任務的唯一 ID
     */
    - (NSString *)fetchImage:(NSString *)url size:(CGSize)size option:(NSDictionary *)option callback:(CKImageHandlerCallback)callback;
    
    @optional
    /**
     @param fetchID 任務 ID, fetchImage 的返回值
     */
    - (void)cancel:(NSString*)fetchID;
    
    @end
    @interface MPCubeManager () <CKImageHandler>
    
    - (void)initEngine {
        CubeEngineConfig *engineConfig = [[CubeEngineConfig alloc] init];
        //設置 delegate
        engineConfig.imageHandler = self;
        [[CubeService sharedInstance] initWithConfig:engineConfig];
    }
    
    - (NSString *)fetchImage:(NSString *)url size:(CGSize)size option:(NSDictionary *)option callback:(CKImageHandlerCallback)callback {
        NSLog(@"圖片地址:%@", url);
        NSLog(@"圖片擴展參數:%@", option);
    
        return @"20211202";
    }