iOS uni-app原生插件開發


iOS uni-app原生插件開發

開發准備

  • OS X 10.14.0+

  • Xcode 11.0+

  • weex擴展API for iOS

    • Native 對外接口

      • 注冊 SDK 默認的 Module、Handler 和 Component

      • 注冊自定義 module、Handler 和 Component

      • 重置 JSFramework

    • Handler (對應於 Android 的 Adapter) 介紹

    • WXImgLoaderDefaultImpl 圖片下載 handler。Weex 會把需要設置圖片的 View 和 URL 透露出來,Native 端需要實現這個接口進行圖片下載。WeexSDK kernel 本身沒有提供圖片下載的默認實現。

 @protocol WXImgLoaderProtocol <WXModuleProtocol> /**  * @abstract Creates a image download handler with a given URL  *  * @param imageUrl The URL of the image to download  *  * @param imageFrame The frame of the image you want to set  *  * @param options : The options to be used for this download  *  * @param completedBlock : A block called once the download is completed.  * image : the image which has been download to local.  * error : the error which has happened in download.  * finished : a Boolean value indicating whether download action has finished.  */ - (id<WXImageOperationProtocol>)downloadImageWithURL:(NSString *)url imageFrame:(CGRect)imageFrame userInfo:(NSDictionary *)options completed:(void(^)(UIImage *image, NSError *error, BOOL finished))completedBlock; @end 
  • Native 和 JS 通信
- 自定義通知事件 用於 native 自定義部分和 js 進行實踐通知,比如傳遞下拉事件到 js,這個是在 component 基類的方法,可以直接使用
/**  * @abstract Fire an event to the component and tell Javascript which value has been changed.  * @param eventName 事件名稱,可以在weex文件某個標簽組件監聽,命名規范為 onXXX  * @param params 數據  * @param domChanges 發生改變的數據  **/ - (void)fireEvent:(NSString *)eventName params:(NSDictionary *)params domChanges:(NSDictionary *)domChanges 
  • 事件回調 多用於 Module 回調結果給 js,回調類型分為下面兩種:
- WXModuleCallback 為了性能考慮,該回調只能回調通知js一次,之后會被釋放,多用於一次結果  - WXModuleKeepAliveCallback 該回調可以設置是否為多次回調類型,多次回調的場景如持續監聽位置的變化,並返回給 js。
@implementation WXEchoModule @synthesize weexInstance; // 讓該module 獲得當前instance WX_EXPORT_METHOD(@selector(echo:)) - (void)echo:(NSString *)param callback:(WXModuleKeepAliveCallback)callback {  callback(param,ture);// 此處設置true,該回調function 可以多次回調執行,可以寫循環測試. }
  • 動態適配容器
- WeexSDK 在 WXSDKInstance 類中提供了方法 setFrame(CGRect) 來改變容器的大小。如:在導航欄從有到無過程,需要 weexView 的變化, 可以在此時 native 調用該方法設置
  • 降級使用
- Weex 處於發展階段會增加一些新的特性和功能,但是這些新的特性和功能都必須升級 SDK 才能實現,對於沒有升級的應用應該怎么處理呢?可以使用降級功能。  - 所謂降級功能就是 Weex 無法運行的版本或者手機,可以用 Weex h5 來代替。  - Native 端可以通過接口 WXSDKInstance 中的 onFailed 回調進行處理,如果是主動降級則返回的錯誤 domain 為 TemplateErrorType,Native 端可以跳轉到對應的 H5 頁面,或者用其他的方式提示用戶當前環境不支持 Weex。
  • 最新版本的SDK包

    • 找到里面的HBuilder-uniPluginDemo文件夾,里面包含HBuilder-uniPlugin插件開發工程,后面會用到。
  • js代碼的開發工具HBuilderX

    • 下載哪個版本的HBuilderX需要注意下,保持和上條中提到的SDK包(在下載SDK包的下載界面中有版本相關的文字描述如下圖),它提到的版本號一致。
  • 確定SDK包里的Xcode工程HBuilder-uniPlugin內是否引用了SDK包里的liblibWeex.a庫和weex-main-jsfm.js文件

插件開發


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM