美文网首页Weex开发iOS
Weex的简单使用(iOS)

Weex的简单使用(iOS)

作者: 蓝心儿的蓝色之旅 | 来源:发表于2016-07-04 19:34 被阅读6812次

        6月30号这天,阿里团队如约的让weex开源了,好多人都在等待这一天。刚开源,有问题是在所难免的,而我作为一个ios开发的前端小白,从weex开始内测,就成为了一名weex粉丝,自己也做了两个小东西,并参加了weex的workshop比赛。

        之前weex刚出来写了篇针对安卓的,由于自己是做ios的,对ios更为熟悉,现在把weex在ios中集成的步骤与一些问题列出来与大家一起分享。

        参与到weex中的人,有的是做安卓的、有的是做前端的、有的是做ios的,如果你想把weex ios集成到自己的项目中,首先你要有ios的开发环境(当然做ios的就不用说了),有mac的最为方便,直接下载xcode装上就可以用,没有mac的还要在window电脑上装黑苹果,比较麻烦。

        假设ios开发环境你已经有了,这时候为那些不是做ios开发的讲一下管理第三方框架的工具-CocoaPods,在集成weex的时候需要用到。尽管有链接,但在这里我给大家简单介绍一下CocoaPods的简单安装过程:

    1,安装gem工具(终端工具的管理包),这时候需要查看ruby源代码gem sources -l ,如果是国外的,需要修改ruby源,如果是官方的需要先移除sudo gem sources -r https://rubygems.org/  ,添加源sudo gem sources -a http://ruby.taobao.org/

    2,安装gem用sudo gem install cocoapods

    3,当项目中需要使用cocopods来管理第三方框架时,首先需要cd到项目路径,然后执行pod init命令

    4,第一次操作使用pod install,安装成功后先退出项目 在使用xcworkspace代开项目

    5,如果不是第一次操作 就使用pod update ,如果安装框架的过程中非常慢 可以使用pod install —help查询-no-repo-update然后执行pod install --no-repo-update

    现在CocoPods也有了,让我真正进入到集成的环节:

    1,在git上把项目克隆下来,最好在桌面先建一个文件夹,克隆到此文件夹内。打开终端,cd到此文件夹,然后执行git clone https://github.com/alibaba/weex.git拉取weex项目。

    2,把weex/ios目录下的idk放入到你自己项目的根目录下,在终端cd到你自己的项目下,执行pod install,这时会出现Podfile,打开Podfile,在里面添加

    target 'YourTarget' do

    platform :ios, '7.0'

    pod 'WeexSDK', :path=>'./sdk/'

    end

    然后再次执行pod install,这时候就好了,也不用手动添加依赖。

    3,在Appdelegate.m里先导入如下图的.h文件

    然后在didFinishLaunchingWithOptions方法里初始化weex环境

    //初始化sdk环境

    [WXSDKEngine initSDKEnviroment];

    //注册module,是可选的,如果想实现网络请求,页面跳转,图片下载,就必须得实现,给出的官网playground里面已经给实现了这三个,可以直接把extend模块拷贝到自己的项目里

    [WXSDKEngine registerComponent:@"MyView" withClass:[MyViewComponent class]];

    [WXSDKEngine registerModule:@"event" withClass:[WXEventModule class]];

    //注册实现功能的协议

    [WXSDKEngine registerHandler:[WXNavigationDefaultImpl new] withProtocol:@protocol(WXNavigationProtocol)];                                            [WXLog setLogLevel:WXLogLevelVerbose];

    其他的可以暂时不用管

    4,可以整页或者部分用weex渲染,然后在需要渲染的控制器里面实现下面的方法

    #import

    - (void)viewDidLoad

    {

    [super viewDidLoad];

    _instance = [[WXSDKInstance alloc] init];

    _instance.viewController = self;

    _instance.frame = self.view.frame;

    [_instance renderWithURL:self.url options:@{@"bundleUrl":[self.url absoluteString]} data:nil];

    __weak typeof(self) weakSelf = self;

    _instance.onCreate = ^(UIView *view) {

    [weakSelf.weexView removeFromSuperview];

    [weakSelf.view addSubview:weakSelf.weexView];

    };

    _instance.onFailed = ^(NSError *error) {

    //process failure

    };

    _instance.renderFinish = ^ (UIView *view) {

    //process renderFinish

    };

    }

    其中[_instance renderWithURL:self.url options:@{@"bundleUrl":[self.url absoluteString]} data:nil];可以改为自己写的要渲染的页面,比如

    NSString *url = @"http://7xvsjr.com1.z0.glb.clouddn.com/index.js";

    self.url = [NSURL URLWithString:url];

    我这里的index.js是index.we生成的index.js文件

    5,这时候基本差不多了,如果报错刚引入没有添加的东西,可以按照官网的playground添加,还有一点需要指出的是,用Source Code打开info.plist,在里面添加

         到这里应该差不多了,可能中间我有遗漏的地方,毕竟集成过了好多天了,我写的这个只是简单的在ios中自己的项目里集成weex ios,一些更为详细的运用后面我还会再写,希望自己可以坚持下去!

    相关文章

      网友评论

      • 阳光的味道_丁达尔:你好,我最近也在使用weex混合开发,碰到了一些问题,cocoapod 集成之后,加载网络js 文件,有的文件可以正常显示,但是有的文件只显示了一个标题和背景图片,能加个扣扣咨询一下吗?
      • JohnQ:<Weex>[error]WXMonitor.m:223, [WX_KEY_EXCEPTION_SDK_INIT_JSFM_INIT_FAILED] script don't exist:(null)运行报这个问题
      • eeb0a61c5b75:你好,weex在npm run dev 一般都是index.js和index.web.js两个文件,不知道为什么我的只有index.js一个文件。请问你遇到过么?
      • Ths:写的不错
        小人物__:你好,我想问下集成为啥不直接用pods安装WeexSDK的最新版本呢,还有这样集成进去,如果想用WEEX开发页面,用xcode可以吗,还是用其它的ide
        Ths:@蓝心儿的蓝色之旅 约吗
      • 孤獨的守望者:内容不错,如果用MarkDown来写就好了,少一点截图,多一些代码 :smile:
        蓝心儿的蓝色之旅:@孤獨的守望者 嗯 还真不知道简书里可以用MarkDown,用MarkDown可以把文章写的更好些

      本文标题:Weex的简单使用(iOS)

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