美文网首页Weex开发技巧weex社区
实现Weex在iOS上的HUD扩展

实现Weex在iOS上的HUD扩展

作者: KChuck | 来源:发表于2017-12-06 16:57 被阅读83次

Weex SDK给实现了toast,即提示语。但是没有hud转圈来提示加载中的状态。下面简单实现一个hud的扩展。Weex官网也提供了增加扩展的方法,地址http://weex.apache.org/cn/references/advanced/extend-to-ios.html。在Xcode工程中,新建WXHudModule类,继承WXModuleProtocol。

//hud扩展

@interface WXHudModule : NSObject<WXModuleProtocol>

@end

在WXHudModule.m中,定义hud的显示(show)和隐藏(hide)方法,并加宏WX_EXPORT_METHOD, 它可以被weex识别,添加@synthesized weexInstance,每个moudle对象被绑定到一个指定的实例上。

#import "WXHudModule.h"
#import "KTools.h"

@implementation WXHudModule

@synthesize weexInstance;

WX_EXPORT_METHOD(@selector(show))
WX_EXPORT_METHOD(@selector(hide))


/*
显示hud
 */
- (void)show
{
    [KTools showhud:YES];
}

/*
 隐藏hud
 */
-(void)hide
{
    [KTools showhud:NO];
}

@end
#import "KTools.h"
@implementation KTools

+(void)showmsg:(NSString*)msg
{
    [MBManager showBriefAlert:msg];
}

+(void)showhud:(BOOL)flag
{
    if(flag)
    {
        [MBManager showLoading];
    }
    else
    {
        [MBManager hideAlert];
    }
}
@end

最后在WXSDKEngine.m中注册这个module

[self registerModule:@"hud" withClass:NSClassFromString(@"WXHudModule")];

@"hud"就是可以在weex的js工程中可以引用的模块名。

WXSDKEngine.m中的_registerDefaultModules类方法(如下)。注册的都是扩展模块,比如navigator、storage等。withClass:中的类名,就是其扩展实现的类。

+ (void)_registerDefaultModules
{
    [self registerModule:@"dom" withClass:NSClassFromString(@"WXDomModule")];
    [self registerModule:@"navigator" withClass:NSClassFromString(@"WXNavigatorModule")];
    [self registerModule:@"stream" withClass:NSClassFromString(@"WXStreamModule")];
    [self registerModule:@"animation" withClass:NSClassFromString(@"WXAnimationModule")];
    [self registerModule:@"modal" withClass:NSClassFromString(@"WXModalUIModule")];
    [self registerModule:@"webview" withClass:NSClassFromString(@"WXWebViewModule")];
    [self registerModule:@"instanceWrap" withClass:NSClassFromString(@"WXInstanceWrap")];
    [self registerModule:@"timer" withClass:NSClassFromString(@"WXTimerModule")];
    [self registerModule:@"storage" withClass:NSClassFromString(@"WXStorageModule")];
    [self registerModule:@"clipboard" withClass:NSClassFromString(@"WXClipboardModule")];
    [self registerModule:@"globalEvent" withClass:NSClassFromString(@"WXGlobalEventModule")];
    [self registerModule:@"canvas" withClass:NSClassFromString(@"WXCanvasModule")];
    [self registerModule:@"picker" withClass:NSClassFromString(@"WXPickerModule")];
    [self registerModule:@"meta" withClass:NSClassFromString(@"WXMetaModule")];
    [self registerModule:@"webSocket" withClass:NSClassFromString(@"WXWebSocketModule")];
    [self registerModule:@"voice-over" withClass:NSClassFromString(@"WXVoiceOverModule")];
    [self registerModule:@"hud" withClass:NSClassFromString(@"WXHudModule")];
}

使用:

在weex的js工程中,写一个div按钮,点击显示hud。

const hud = weex.requireModule('hud');//引用hud模块
                hud.show();//显示hud
                //hud.hide();//隐藏hud

相关文章

  • 实现Weex在iOS上的HUD扩展

    Weex SDK给实现了toast,即提示语。但是没有hud转圈来提示加载中的状态。下面简单实现一个hud的扩展。...

  • Weex textarea标签自动换行扩展iOS

    weex 标签扩展 实现WEEX 标签输入框自适应高度 首先贴上我的weex代码: 通过we...

  • Weex iOS扩展

    Weex扩展说明 weex可扩展性,赋予了它强大的能力,它可以开放回调将部分事情交给原生去执行,也可以原生注册实体...

  • weex扩展ios

    native如果使用大片的weex,甚至整个app都是weex的话会及其影响性能,所以在native我们采用了单页...

  • iOS 的 HUD 简易封装

    简介 HUD 在 iOS 中的界面展示中用的比较多。iOS 开发中最常用的 HUD 要数 MBProgressHU...

  • MBProgressHUD 分类

    ### 1.UIView+HUD.h UIViewController+HUD.h 扩展的原因,是为了UIView...

  • Weex:Js与Native的交互

    介绍 weex的前端实现是通过Js+Css+Weex自定义组件完成的。那么事必存在Js与Native的扩展和交互存...

  • weex 在 iOS 上如何实现常见的网络缓存

    摘要: weex 旨在兼顾web动态性与native的用户体验,如果想将两者的优势最大化,那么缓存就显得格外重要,...

  • Swift 中的 weex

    weex ios 集成参阅:Weex学习与实践:iOS原理篇 swift集成weex 首先将weexsdk集成到项...

  • weex的数据缓存模块之storage实现源码阅读

    本文假设你对weex有基本的了解!(本文的目的是讲解iOS的一种缓存方案实现,weex的部分不懂并无大碍。如果不关...

网友评论

本文标题:实现Weex在iOS上的HUD扩展

本文链接:https://www.haomeiwen.com/subject/dcdlixtx.html