當咱們在使用Weex開發時,時常會以爲很不爽,由於官方提供的組件太少了前端
對於前端開發者來講,又多了一件麻煩事,要去接觸原生swift
但對於愛學習的你來講,這正好是一個絕機會bash
咱們的下一個技能就是,提供原生組件給weex使用weex
那就開始吧ide
自定義原生組件分爲主要兩部分性能
1.IOS-SWIFT自定義組件
2.weex端對於自定義組件的使用
複製代碼
新建 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"));
複製代碼
<template>
。。。。。。
<text @click=「test(‘Hit me')"></text> <text @click=「test(‘點我啊')"></text> <divExtra ref=「test"></divExtra>
。。。。。。
</template>
複製代碼
調用以下:
test (text ){
This.$refs.test.showToast(text)
}
複製代碼
很簡單,咱們來看一下跑起來的效果.