小白玩 weex(一) IOS-Swift集成weex

半路出家的程序猿,稀里糊涂的学了weex,做了一段时间,也有了一些经验

weex的使用场景有限,在适合的场景下使用weex可以说是一个不错的选择。weex非常适合展示页面,交互不复杂的页面,开发效率贼高

毕竟刚转行,只会写weex,让我感到十分的恐慌,于是自己又试着学习swift(为啥没学OC?真的被语法吓到了,看起来很诡异),学着写IOS原生代码。

通过写这篇文章,做一些总结和记录,也为了方便日后查阅,复习

那就直接进入正题吧,

## SWIFT项目中如何手动集成WEEX?

参考资料:http://weex.apache.org/cn/guide/extend-module-using-swift.htmlweex官网,使用swift扩展IOS功能

    https://github.com/acton393/WeexSwiftSample,官网给的例子

Xcode 10 + Weex 0.19.0

看完swift的语法,然后去看官网的文档,心中一万只草泥马奔过,这尼玛是啥也看不懂啊;但毕竟转行做程序猿是自己的决定,跪着也要走完;只能硬着头皮上

下载github上官方例子,打开podfile,可以看到有如下信息;还有一个叫bundlejs的文件夹,里头放着weex项目编译出来的JS文件;看起来似乎不难,那我们就放照官网例子,试着自己集成一下weex

这里就不赘述如何创建weex项目以及安装cocoa pods了,如果有不懂的读者,可以自己尝试去整整看

1.首先使用xcode 创建single view app


创建成功后,我们在终端进入改项目目录,执行 pod init

然后将官网的podfile文件里的需要安装的第三方拷贝到自己项目的podfile里

官方:podfile里的信息:

    pod 'WeexSDK', ‘0.16.0’   //核心SDK

    pod 'WXDevtool', ‘0.15.1’ //开发工具

    pod 'SDWebImage', ‘3.7.5’ //图片处理

    pod 'SocketRocket', ‘0.4.2’ 

复制到自己项目,并且我把weexsdk的版本修改到 0.19.0

     pod 'WeexSDK', ‘0.16.0’   //核心SDK

      pod 'WXDevtool', ‘0.15.1’ //开发工具

      pod 'SDWebImage', ‘3.7.5’ //图片处理

pod 'SocketRocket', ‘0.4.2’

然后终端执行  pod install

2.创建桥街文件

     weexsdk是OC写的,swift并不能直接使用,所以我们需要创建一个桥街文件;然后通过swift来扩展OC暴露出来的接口,这样我们才可以愉快的使用

    我们新建一个WXEventModule的swift文件,

    接着我们继续新建一个WXEventModule.m文件

这时,会弹出如下对话框,点击创建桥街文件


最后我们再创建一个WXEventModule.h文件

3.尝试跟着官方例子,将WXEventModule.swift,WXEventModule.h,WXEventModule.m以及viewcontroller文件代码补充完整,还有一个图片类下载协议

   把官方例子里的内容直接copy过来不就完了??  好主意,拷过来,看看编译能不能通过

     我去,两年前的例子,竟然直接编译通过了,切斯太!!

4.补全Appdelegate里的代码

        还是直接拷贝吧,但是重新组织下代码,把配置weexsdk以及注册module,component,handler这些代码提出来,放到一个函数里


5.添加bundle文件夹


然后


6.将weex项目里编译好的JS文件copy到项目下的bundlejs文件夹下,我就把新建weex测试项目下的dist文件夹下的index.js拷贝到bundlejs文件夹下(这个在weex项目里用指令也可以做到,暂时还没研究,后面补上)



7.我们仔细查看官方例子中appdelegate中这段代码

```

    。。。。。。。。。。。

    let viewController:ViewController = ViewController()

        viewController.url = URL.init(string: String.init(format: "file://%@/bundlejs/index.js", Bundle.main.bundlePath))

        window = UIWindow.init(frame: UIScreen.main.bounds)

        window?.backgroundColor = UIColor.white

window?.rootViewController = UINavigationController.init(rootViewController: viewController)

   。。。。。。。。。

```

用一个viewcontroller加载JS文件,我们也按照他的格式创建了bundlejs文件,还特意拷贝了一个index.js文件

那就编译运行一下试试,看看能不能跑起来,cmd+r,


乖乖,竟然成功了,搞起来也不是那么难嘛,当然最简单的就是下载官方例子,然后把名字改了,再根据自己需要架构项目;

拿着官网的例子,copy再copy,还是了解了一些swift如何集成weex;

还算是有所收获吧;

你可能感兴趣的:(小白玩 weex(一) IOS-Swift集成weex)