【转】学习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,然后在模塊里面實現該方法,當應用啟動時該方法就會被執行。
?
[objc]?view plaincopy?
2.4. 方法調用
實現 - (void)showAlert:(NSDictionary *)paramDict 方法,用于顯示一個對話框,該方法需要在module.json里面配置,然后在前端js里面才可以調用該方法。
如果前端調用該方法時傳入了一個function,那么在這里可以通過cbId字段獲取該function對應的id,然后在需要的時候把數據通過該function回調給js。
?
[objc]?view plaincopy?
?
2.5. 回調
?
我們在這里實現UIAlertViewDelegate中的 - (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger)buttonIndex 方法,將用戶點擊的按鈕index回調給js端,代碼如下:
[objc]?view plaincopy
當然,也可以定義自己的方法method,同時要修改module.json的配置 注意不要[+]以及引號的英 漢。
找到widget目錄下html目錄里面的module-con.html,我們在這里面調用showAlert等方法,如下
?
[objc]?view plaincopy
調試好了之后,把添加 修改的文件 加入ModuleDemo的靜態庫工程(也可以自己創建),去掉沒用的,選擇iOS device編譯,復制靜態庫文件。 創建文件夾名稱和模塊包一致,里面在創建target文件夾,把靜態庫文件粘貼進來,加入用到了第三方的Framework和bundle束也放進來。 target同級目錄粘貼module.json文件,返回壓縮成zip文件. 獲取在apicloud創建的應用的Id 修改widget下config.xml 頂部的id,復制壓縮widget文件。在apicloud控制臺,轉到該應用,選擇代碼部分,上傳widget.zip 跳轉模塊中自定義模塊上傳模塊包,名稱必須和模塊包名稱一致。保存 編譯,如果沒有意外,你就能掃二維碼 下載安裝你的應用到手機了。 這里默認的時apicloud提供的證書,加入要改自己的就看證書欄目,都有教程的。Mark!
總結
以上是生活随笔為你收集整理的【转】学习apicloud和IOS之间的模块化使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java IO的RandomAccess
- 下一篇: CSS Id 和 Class