半路出家的程序猿,稀里糊涂的学了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;
还算是有所收获吧;