Swift in Weex

Posted 淘系技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Swift in Weex相关的知识,希望对你有一定的参考价值。

参考 Swift和Objective-C

weex ios SDK 是使用Objective-C,结合部分C写的,
引入Swift,需要混编,直接进入正题

SDK集成

  1. 使用cocoaPods 集成跟 使用Objetive-C 一样的集成方式

  2. 导入framework

    • Import the framework you get above and import system framework 

    • Add main.js(which is in the WeexSDK.framework) to your main bundle Swift in Weex

    • 添加 -ObjC(注意大小写) Swift in Weex

  3. import WeexSDK 就像Swift的module 一样 
    WeexSDK 已经在build setting 里面打开了define module
    Swift in Weex
    更多参考这里(阅读原文跳转链接:)

module 扩展

因为module 暴露method 是通过Objective-C宏来做的,调用的时候是通过反射,所以Swift扩展module通过extensionObjective-C的类,以下操作,可以直接在weex 的iOS playground 中进行

  • 新建 WXSwiftTestModule.h/m 和 WXSwiftTestModule.swift文件, 在新建Swift文件的时候会提示
    Swift in Weex
    选择 Create Bridging Header, 因为我们要在swift中访问Objective-C的一些类,正是通过这个header暴露OC的类给Swift,header格式为 yourTarget-Bridging-Header.h,我这里创建完header文件名称为:WeexDemo-Bridging-Header.h

  • WXSwiftTestModule.h/m中实现

    • WXSwiftTestModule.h 中

    Swift in Weex

    • WXSwiftTestModule.m 中

      WeexDemo-Swift.h 这个文件需要编译一下才可以搜索到,具体的路径

    Swift in Weex

    路径具体需要根据自己工程而定

    Swift in Weex

  • Swift 中实现 
    扩展 OC的类 WXSwiftTestModule ,增加了一个方法,这个方法就是我们要暴露出来,在js中可以调到的

    • WXSwiftTestModule.swift

    Swift in Weex

    WXSwiftTestModule 和WXModuleCallback 因为是OC的,需要在WeexDemo-Bridging-Header中暴露

    • WeexDemo-Bridging-Header.h中

    Swift in Weex

    至此这个Swift的简单的module 已经算是开发完成

module 使用

  • 注册module

Swift in Weex

  • we 文件中使用

点击【阅读原文】,了解更多weex相关信息,微信中不能跳转的许多链接可以点击原文跳转。


以上是关于Swift in Weex的主要内容,如果未能解决你的问题,请参考以下文章

swift 代码片段

如何将这个 Objective-C 代码片段写入 Swift?

如何使用 Swift 使用此代码片段为 iOS 应用程序初始化 SDK?

用weex create 创建app项目 报 ERROR in index.web.js from UglifyJs 错误!

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题