美文网首页weex社区
填坑记,Swift集成WeexSDK

填坑记,Swift集成WeexSDK

作者: 2e919d99a871 | 来源:发表于2017-04-27 11:49 被阅读171次

前言:

最近在项目里集成了WeexSDK,Swift项目,不能完全按照官方给的OC例子来搞,中间遇到了一些挺疼的坑,拿出来给大家分享下,希望能够帮到那些和我一样遇到这些坑的萌新们(注意:真的只针对萌新,不喜勿喷,笔者玻璃心,你如果骂我,我肯定也会骂你)

u=1017077204,3032561456&fm=10&gp=0.jpg
首先,别告诉我你没有看过Weex iOS SDK 集成指南(算了,不装逼了,没看过的去看看吧,你第一步要做的就是集成WeexSDK到你的项目里)如果第一步你完成的很丝滑,而且我也假装你看了Demo,完成了对"hello.js"的渲染,那我们很快就能进入正题,聊聊填坑的事儿了.
你如果已经看到iOS 扩展的文档了,那么恭喜你,你已经迎来了第一个坑: 自定义module,
14932580825684.jpg

,这时候,兴奋的你赶紧跑到demo里面,去查看了这个宏,然后你点啊点,发现


14932581938930.jpg

早已不写OC好多年的你表情肯定是这样的:


u=3505959089,2159339427&fm=23&gp=0.jpg

别担心,阿里爸爸已经猜到了你会这样,所以他们建议你创建一个桥接文件把宏写进OC的类里,然后为这个OC类写一个Swift的扩展,在扩展里写你要传递给Weex的module方法(还有一种方法,那就是手动把OC的宏转换成Swift全局的函数,也许想到这个办法的时候你也曾跟我一样绝望)Swift In Weex.具体的您往这儿看:
OC类WXEventModule的.h 实现

14932619244153.jpg

OC类WXEventModule的.m 实现

14932619725368.jpg

这时候,聪明可人的你可能发现了, "WeexTest-Swift.h"是个什么鬼?别担心,你只要把他改成"YouDemo-Swift.h"就行了.这个.h文件是系统自动生成的,用于在OC类里引用Swift实例,是一个隐形的文件,第一次引进来,只要编译一次就可以找到了.(其实Swift In Weex里面有说,但说的不够详细)

u=1981424219,3081367983&fm=23&gp=0.jpg

然后在Swift类的扩展里这样:


14932620356410.jpg

别忘了把你的module引入到桥接文件

14932620892860.jpg

最后,在AppDelegate里面注册一下你的module:

WXSDKEngine.registerModule("WXOpenpageModule", with: NSClassFromString("WXEventModule"))

行了,自定义module的坑踩平了,放下键盘,拿起手机,打一盘王者农药压压惊吧!
接下来说一说Weex下载图片的坑,weexSDK 没有图片下载的能力,需要我们手动实现一个下载器WXImgLoaderDefaultImpl(英俊潇洒,懒癌晚期的我,直接克隆的演示Demo的下载器),细节没什么说的,你只要拖到你的项目里,然后在AppDelegate里注册一下就OK了

WXSDKEngine.registerHandler(WXImgLoaderDefaultImpl(), with: NSProtocolFromString("WXImgLoaderProtocol"))

结束语:

最后奉上我的一发Demo,传送门,我觉得有必要介绍下这个Demo,我实现了一个扫描二维码功能,你可以用他扫描你们前端小伙伴部署到服务器的JSBundle链接,然后直接在控制器里拿到这个链接去渲染,这样开发测试起来还是很方便的嘛,如果帮到了你,也烦请您动动发财的小手,右上角点点star,毕竟做人最重要的是装逼嘛~~

NK4RR(CPMTI7S`HOZ@4_GUP.jpg

踩坑持续中,不间断更新,欢迎评论交流~!

相关文章

网友评论

    本文标题:填坑记,Swift集成WeexSDK

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