IOS-SWIFT 如何自定義組件提供給WEEX使用?

當咱們在使用Weex開發時,時常會以爲很不爽,由於官方提供的組件太少了前端

對於前端開發者來講,又多了一件麻煩事,要去接觸原生swift

但對於愛學習的你來講,這正好是一個絕機會bash

咱們的下一個技能就是,提供原生組件給weex使用weex

那就開始吧ide

自定義原生組件分爲主要兩部分性能

1.IOS-SWIFT自定義組件

2.weex端對於自定義組件的使用
複製代碼

一.IOS-SWIFT自定義組件

新建 WXDivExtraComponent.h學習

#import
@interfaceWXDivExtraComponent :WXComponent
@end
複製代碼

聲明一個基於WXComponent的類ui

新建 WXDivExtraComponent.mspa

在.m文件裏咱們提供一個方法給weex端使用,使用WX_EXPORT_METHOD暴露方法code

#import"WXDivExtraComponent.h"

@implementationWXDivExtraComponent
WX_EXPORT_METHOD(@selector(showToast:))

@end
複製代碼

新建WXDivExtraComponent.swift文件

使用swift來擴展WXDivExtraComponent類,並實現方法showToast

我本身也是剛開始學IOS,也不會寫;因而我就去gayhub上,找到一些例子,直接借鑑他人的經驗與智慧

在gayhub上,找到GSMessage,專門作toast的第三方,用pod安裝後,引入

importFoundation
importGSMessages
importUIKit
publicextensionWXDivExtraComponent{
    @objc public fun showToast(_ text: String){
        let mView =UIView(frame:CGRect(origin:CGPoint.zero, size:CGSize(width:0, height:0)))
        self.view.addSubview(mView)
        let vc = mView.getFirstViewController()
        vc!.view.showMessage(text, type: .info, options: [
        .animations([.fade]),
        .animationDuration(0.3),
        .autoHide(true),
        .autoHideDelay(3.0),
        .cornerRadius(0.0),
        .height(44.0),
        .hideOnTap(true),
        .margin(.zero),
        .padding(.init(top:10, left:30, bottom:10, right:30)),
        .position(.top),
        .textAlignment(.center),
        .textColor(.white),
        .textNumberOfLines(1),
        ])
    }
}
複製代碼

好了,IOS端咱們要提供給weex端的一個自定義toast組件,就寫完了

固然,咱們還有最重要的一步,註冊該組件;在Appdelege裏,找到配置weex的相關代碼,添加以下代碼

WXSDKEngine.registerComponent("divExtra",with:NSClassFromString("WXDivExtraComponent"));
複製代碼

二.weex端如何使用原生組件

<template>
    。。。。。。
    <text   @click=「test(‘Hit me')"></text> <text @click=「test(‘點我啊')"></text> <divExtra ref=「test"></divExtra>
   。。。。。。
</template>
複製代碼

調用以下:

test (text ){
    This.$refs.test.showToast(text)
}
複製代碼

很簡單,咱們來看一下跑起來的效果.

到這,這個簡單的例子就完成了,可是這個例子只是簡單的跑了下大體流程,如何自定義原生組件而且如何在weex端使用,還有不少問題沒有研究,好比原生組件如何適配屏幕??性能如何?用weex的時候,若是牽扯到原生,那麼就很麻煩,所謂的一次編寫,多端運行就是純扯淡
相關文章
相關標籤/搜索