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

卡片調(diào)用客戶端方法

本文介紹了在螞蟻動態(tài)卡片中調(diào)用 iOS 客戶端方法的實現(xiàn)路徑。

操作步驟

  1. 在工程中新建 NSObject 對象并引入?yún)f(xié)議 <CubeModuleProtocol>

    #import <Foundation/Foundation.h>
    #import <CubeCrystal/CubeModuleProtocol.h>
    
    NS_ASSUME_NONNULL_BEGIN
    
    @interface MPCubeModule : NSObject <CubeModuleProtocol>
    
    @end
    
    NS_ASSUME_NONNULL_END
  2. 實現(xiàn)與模板約定的方法。

    與模板約定的方法名為 push,效果是單擊卡片時調(diào)用 Native 實現(xiàn) Push Viewcontroller 操作。

    #import "MPCubeModule.h"
    #import <CubeBridge/CKJSDefine.h>
    
    @implementation MPCubeModule
    
    //cardUid 是 module 的屬性,在調(diào)用 module api 時可以通過 cardUid 判斷是哪個卡片產(chǎn)生的調(diào)用,cardUid 即 CubeCard 中的 cardUid。
    @synthesize cardUid;
    
    //配置約定的方法
    CK_EXPORT_METHOD(@selector(push:))
    
    - (void)push:(CubeModuleMethodCallback)callback {
        if (callback) {
                    //此處執(zhí)行Push ViewController操作
            
            //回調(diào)給模板的參數(shù)
            callback(@"Push Page");
        }
    }
    
    @end
  3. 注冊自定義 Module。

    - (void)registerModules {
        [MPCubeManager shareManager];
        
        //注冊自定義Module,key為module名稱(與服務(wù)端約定),value為客戶端類名
        NSDictionary *dic = @{@"crystalnavigator": @"MPCubeModule"};
        [[[CubeService sharedInstance] getEngine] registerModules:dic];
    }
  4. 卡片側(cè)調(diào)用。

    <script>
                    //約定的自定義Module標(biāo)識
        const navigator = requireModule("crystalnavigator");
        export default {
            methods: {
                onClick() {
                    navigator.push(event => {console.info(event);});
                    console.info('invoke on-click event');
                }
            }
        }
    </script>
  5. 將卡片打包發(fā)布到后臺,即可調(diào)用客戶端方法。