當前位置:編程學習大全網 - 源碼下載 - APICloud 社區ios編譯失敗 怎麽辦

APICloud 社區ios編譯失敗 怎麽辦

最近公司有使用APICloud發開的需求,需要我這邊提供壹些模塊包得封裝。因為沒有也是剛接觸APICloud,所以也就在看官方文檔 。下面講壹講我再使用過程中得壹點點東西。 首先,下載官方SDK,下載最新版本的模塊開發SDK,找到裏面的ModulesDevProject_iOS.zip,這裏面包含ModuleDemo、ModulesDevProject和說明文件。ModuleDemo是壹個官方的模塊包封裝和靜態庫生成的工程。ModulesDevProject則是可以讓我們自己調試的工程。模塊類實現2.1. 新建模塊類新建壹個UZModuleDemo類,繼承於UZModule類,其中UZModule類為模塊的基類。模塊開發過程中文件命名時提倡加前綴,以避免和其它模塊沖突。2.2. 模塊生命周期當前端js中調用模塊方法時,模塊首先會被初始化,引擎會調用其 - (id)initWithUZWebView:(UZWebView *)webView 方法;當模塊所在的頁面被銷毀時,引擎會調用其 - (void)dispose 方法。2.3. 啟動方法如果模塊需要在應用啟動的時候就執行壹些操作,那麽首先得在module.json裏面配置launchClassMethod,例如配置的方法為launch,然後在模塊裏面實現該方法,當應用啟動時該方法就會被執行。+ (void)launch{ //在module.json裏面配置的launchClassMethod,必須為類方法,引擎會在應用啟動時調用配置的方法,模塊可以在其中做壹些初始化操作;下面代碼為註冊壹個實現了UIApplicationDelegate協議方法的對象,該對象中方法就會在需要的時候被調用,通過此方式可以實現第三方應用回調url解析、推送等常用功能 //UZApphandler 基礎Object基類 可以做壹些需要AppDelegate 實現的初始化 如初始化推送的AppKey等等 // UZAppHandler *appHandler = [[UZAppHandler alloc] init]; // [theApp addAppHandle:appHandler];}2.4. 方法調用實現 - (void)showAlert:(NSDictionary *)paramDict 方法,用於顯示壹個對話框,該方法需要在module.json裏面配置,然後在前端js裏面才可以調用該方法。如果前端調用該方法時傳入了壹個function,那麽在這裏可以通過cbId字段獲取該function對應的id,然後在需要的時候把數據通過該function回調給js。- (void)showAlert:(NSDictionary *)paramDict { _cbId = [paramDict integerValueForKey:@"cbId" defaultValue:-1]; NSString *message = [paramDict stringValueForKey:@"msg" defaultValue:nil]; UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:message delegate:self cancelButtonTitle:@"取消" otherButtonTitles:@"確定", nil]; [alert show];}2.5. 回調我們在這裏實現UIAlertViewDelegate中的 - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 方法,將用戶點擊的按鈕index回調給js端,代碼如下:- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex { if (_cbId >= 0) { NSDictionary *ret = @{@"index":@(buttonIndex)}; [self sendResultEventWithCallbackId:_cbId dataDict:ret errDict:nil doDelete:YES]; }}當然,也可以定義自己的方法method,同時要修改module.json的配置 註意不要[+]以及引號的英 漢。{ "name":"moduleDemo",//模塊包名壹致 "class":"UZModuleDemo",//模塊類名 "methods":["showAlert","method"],//自己定義的方法名 "launchClassMethod":"launch"//是否執行launc類方法}找到widget目錄下html目錄裏面的module-con.html,我們在這裏面調用showAlert等方法,如下var param = { msg:"Hello App!"};var demo = api.require('moduleDemo');//模塊包名稱 (module.json 這裏 模塊包名稱 三者要壹致)demo.showAlert(param, callBack);//傳參數調用方法 和回調function callBack(ret, err){ var msg; if (ret.index == 0){ msg = "點擊了第壹個按鈕"; } else { msg = "點擊了第二個按鈕"; } api.toast({ msg:msg });}調試好了之後,把添加 修改的文件 加入ModuleDemo的靜態庫工程(也可以自己創建),去掉沒用的,選擇iOS device編譯,復制靜態庫文件。 創建文件夾名稱和模塊包壹致,裏面在創建target文件夾,把靜態庫文件粘貼進來,加入用到了第三方的Framework和bundle束也放進來。 target同級目錄粘貼module.json文件,返回壓縮成zip文件. 獲取在apicloud創建的應用的Id 修改widget下config.xml 頂部的id,復制壓縮widget文件。在apicloud控制臺,轉到該應用,選擇代碼部分,上傳widget.zip 跳轉模塊中自定義模塊上傳模塊包,名稱必須和模塊包名稱壹致。保存 編譯,如果沒有意外,妳就能掃二維碼 下載安裝妳的應用到手機了。 這裏默認的時apicloud提供的證書,加入要改自己的就看證書欄目,都有教程的。Mark!

  • 上一篇:哈爾濱系統源代碼
  • 下一篇:java中Vector實現方法和功能還有例子詳細講解壹下!謝謝!
  • copyright 2024編程學習大全網