文档章节

Weex IOS初始化项目

Billydotzhang
 Billydotzhang
发布于 2016/12/08 13:36
字数 587
阅读 159
收藏 1
点赞 1
评论 0

项目初始化

1、没有现成的工程的话新建iOS项目

命令行cd到项目根目录 执行 pod init,会创建一个pod配置文件

用编辑器打开,加上 pod 'WeexSDK', :path=>'./sdk/'

下载最新的weexSDK https://github.com/alibaba/weex

在ios目录下有个sdk文件夹,把它复制到ios项目根目录,和podFile里配置的路径一致

关掉xcode,在当前目录,命令行执行pod install,

现在项目目录变成了这样,以后点击xcworkspace文件打开项目

创建一个新目录weex,命令行cd到weex目录,执行weex init,会提示你输入项目名称

自动创建的文件:

在当前目录命令行执行npm install,安装依赖库

创建一个文件夹js,命令行执行weex src -o js生成最终需要的js文件

也可以weex src/main.we在浏览器预览

或者weex src/main.we --qr 生成二维码,用playground App 扫描预览

加载weex页面

xcode打开workspace项目文件

打开AppDelegate.m添加一下内容

将之前创建的js文件夹拖到xcode工程的文件列表

效果是这样的

weex视图控制器的初始化

ViewController.h:

//  
//  ViewController.h  
//  weexDemo3  
//  
//  Created by admin on 16/8/3.  
//  Copyright © 2016年 admin. All rights reserved.  
//  
  
#import <UIKit/UIKit.h>  
  
@interface ViewController : UIViewController  
- (instancetype)initWithJs:(NSString *)filePath;  
@end  

 

ViewController.m:

//  
//  ViewController.m  
//  weexDemo3  
//  
//  Created by admin on 16/8/3.  
//  Copyright © 2016年 admin. All rights reserved.  
//  
  
#import "ViewController.h"  
#import <WeexSDK/WXSDKInstance.h>  
  
@interface ViewController ()  
@property (nonatomic, strong) WXSDKInstance *instance;  
@property (nonatomic, strong) UIView *weexView;  
@end  
  
@implementation ViewController{  
    NSURL *jsUrl;  
}  
  
- (instancetype)initWithJs:(NSString *)filePath  
{  
    self = [super init];  
    if (self) {  
        //远程js文件  
//        NSString *path=[NSString stringWithFormat:@"http://192.168.232.13:8080/examples/js/%@",filePath];  
        //本地js文件  
                NSString *path=[NSString stringWithFormat:@"file://%@/js/%@",[NSBundle mainBundle].bundlePath,filePath];  
        NSLog(@"-----path:%@",path);  
        jsUrl=[NSURL URLWithString:path];  
    }  
    return self;  
}  
  
- (void)viewDidLoad {  
    [super viewDidLoad];  
    _instance = [[WXSDKInstance alloc] init];  
    _instance.viewController = self;  
    _instance.frame=self.view.frame;  
    __weak typeof(self) weakSelf = self;  
    _instance.onCreate = ^(UIView *view) {  
        [weakSelf.weexView removeFromSuperview];  
        weakSelf.weexView = view;  
        [weakSelf.view addSubview:weakSelf.weexView];  
    };  
    _instance.onFailed = ^(NSError *error) {  
        NSLog(@"加载错误");  
    };  
      
    _instance.renderFinish = ^ (UIView *view) {  
        NSLog(@"加载完成");  
    };  
    if (!jsUrl) {  
        return;  
    }  
    [_instance renderWithURL: jsUrl];  
    self.view.backgroundColor=[UIColor whiteColor];  
}  
  
- (void)didReceiveMemoryWarning {  
    [super didReceiveMemoryWarning];  
    // Dispose of any resources that can be recreated.  
}  
  
- (void)dealloc  
{  
    [_instance destroyInstance];  
}  
  
@end  

 

再打开AppDelegate.m创建导航控制器

 

引入头文件

#import "ViewController.h"

创建导航视图:

 

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
    //weex  
    [self initWeex];  
    ViewController *vc=[[ViewController alloc]initWithJs:@"main.js"];  
    UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:vc];  
    self.window.rootViewController=nav;  
    return YES;  
}  


运行

 

图片不显示是因为图片加载需要自己创建模块,可以直接把demo的代码和pod配置粘过来使用

© 著作权归作者所有

共有 人打赏支持
Billydotzhang
粉丝 8
博文 42
码字总数 20582
作品 0
崇明
【AR】开始使用Vuforia开发iOS(2)

原 设置iOS开发环境 安装Vuforia iOS SDK 如何安装Vuforia iOS示例 编译并运行Vuforia iOS示例 支持iOS金属 iOS 64位迁移 设置iOS开发环境 适用于iOS的Vuforia引擎目前支持运行iOS 9及更高版...

lichong951 ⋅ 06/11 ⋅ 0

Dhar/YTTInjectedContentKit

YTTInjectedContentKit iOS壳版本场景下的批量修改类名、属性名、插入混淆代码、修改项目名称的shell脚本 具体的实现和使用方法请参考我的博客文章: iOS使用shell脚本注入混淆内容 iOS使用S...

Dhar ⋅ 05/04 ⋅ 0

RN与原生交互(一)——基本页面跳转

React Native(以下简称RN)开发app过程中大部分都可以在JS端完成,但是也有一些功能是需要原生端来完成的。这时RN与原生端就不可避免的需要进行交互,比如页面跳转和数据传递。本篇文章主要以...

不變旋律 ⋅ 06/13 ⋅ 0

React Native SDK for OSS

此文主要介绍 React Native SDK for OSS的方方面面,包括相关基本概念、项目背景、项目方案、环境搭建运行、使用姿势、注意事项等。文末的附件可运行Example Zip压缩包和针对新手的入门实用文...

zuozhao ⋅ 05/18 ⋅ 0

iOS三维菜单、调试工具、封装通讯录、网络框架、多种控件和动画等源码

iOS精选源码 一个调用系统通讯录和获取通讯录所有联系人的封装(http://www.code4app.com/thread-29726-1-1.html) ios scrollview嵌套tableview同向滑动(初级、进阶), 支持OC / Swift(http...

sunnyaigd ⋅ 05/15 ⋅ 0

UISegmentedControl segmentedControl

一、简介 <UIControl-->UIView-->UIResponder-->NSObject 格式为 1-->初始化(作用) typedef NS_OPTIONS(NSUInteger, UIDataDetectorTypes) { UIDataDetector......

无邪8 ⋅ 05/22 ⋅ 0

iOS高仿QQ侧滑控件、下载框架、动画效果、扫一扫、颜色变化、K线图等源码

iOS精选源码 仿京东"加入购物车"转场动画(http://www.code4app.com/thread-28162-1-1.html) ColorTool(颜色转换)(http://www.code4app.com/thread-29256-1-1.html) Swift 专业版K线(http://w......

sunnyaigd ⋅ 04/17 ⋅ 0

面试官自述:面向高级开发人员的iOS面试问题

当您准备进行技术性iOS面试时,了解您可能会询问哪些主题以及经验丰富的iOS开发人员期望什么是非常重要的。 这是许多硅谷公司用来衡量iOS候选人资历水平的一系列问题。 这些问题涉及iOS开发的...

菇哒微课 ⋅ 04/26 ⋅ 0

2018 一份"有点难"的iOS面试题(5年iOS开发)

序言: 之前一时兴致在本站上出过一份iOS的中级面试题,引起一些关注,不少同学表示对”隐藏关卡“感兴趣。升级版iOS面试题来了,目测难倒90%iOS程序员,目测一大波程序员撸着袖子在靠近。 ...

原来是泽镜啊 ⋅ 05/26 ⋅ 0

GitHub被微软收购后 开发者蜂拥入驻GitLab

GitHub被微软收购后 开发者蜂拥入驻GitLab 2018-06-07 10:44编辑: 枣泥布丁分类:业界动态来源:程序师 收购微软GithubGitLab 招聘信息: C++工程师 Cocos2d-x游戏客户端开发 iOS开发工程师...

枣泥布丁 ⋅ 06/07 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

如何优雅的编程——C语言界面的一点小建议

我们鼓励在编程时应有清晰的哲学思维,而不是给予硬性规则。我并不希望你们能认可所有的东西,因为它们只是观点,观点会随着时间的变化而变化。可是,如果不是直到现在把它们写在纸上,长久以...

柳猫 ⋅ 18分钟前 ⋅ 0

从零手写 IOC容器

概述 IOC (Inversion of Control) 控制反转。熟悉Spring的应该都知道。那么具体是怎么实现的呢?下面我们通过一个例子说明。 1. Component注解定义 package cn.com.qunar.annotation;impo...

轨迹_ ⋅ 18分钟前 ⋅ 0

系统健康检查利器-Spring Boot-Actuator

前言 实例由于出现故障、部署或自动缩放的情况,会进行持续启动、重新启动或停止操作。它可能导致它们暂时或永久不可用。为避免问题,您的负载均衡器应该从路由中跳过不健康的实例,因为它们...

harries ⋅ 19分钟前 ⋅ 0

手把手教你搭建vue-cli脚手架-详细步骤图文解析[vue入门]

写在前面: 使用 vue-cli 可以快速创建 vue 项目,vue-cli很好用,但是在最初搭建环境安装vue-cli及相关内容的时候,对一些人来说是很头疼的一件事情,本人在搭建vue-cli的项目环境的时候也是...

韦姣敏 ⋅ 30分钟前 ⋅ 0

12c rman中输入sql命令

12c之前版本,要在rman中执行sql语句,必须使用sql "alter system switch logfile"; 而在12c版本中,可以支持大量的sql语句了: 比如: C:\Users\zhengquan>rman target / 恢复管理器: Release 1...

tututu_jiang ⋅ 44分钟前 ⋅ 0

Nginx的https配置记录以及http强制跳转到https的方法梳理

Nginx的https配置记录以及http强制跳转到https的方法梳理 一、Nginx安装(略) 安装的时候需要注意加上 --with-httpsslmodule,因为httpsslmodule不属于Nginx的基本模块。 Nginx安装方法: ...

Yomut ⋅ 今天 ⋅ 0

SpringCloud Feign 传递复杂参数对象需要注意的地方

1.传递复杂参数对象需要用Post,另外需要注意,Feign不支持使用GetMapping 和PostMapping @RequestMapping(value="user/save",method=RequestMethod.POST) 2.在传递的过程中,复杂对象使用...

@林文龙 ⋅ 今天 ⋅ 0

如何显示 word 左侧目录大纲

打开word说明文档,如下图,我们发现左侧根本就没有目录,给我们带来很大的阅读障碍 2 在word文档的头部菜单栏中,切换到”视图“选项卡 3 然后勾选“导航窗格”选项 4 我们会惊奇的发现左侧...

二营长意大利炮 ⋅ 今天 ⋅ 0

智能合约编程语言Solidity之线上开发工具

工具地址:https://ethereum.github.io/browser-solidity/ 实例实验: 1.创建hello.sol文件 2.调试输出结果

硅谷课堂 ⋅ 今天 ⋅ 0

ffmpeg 视频格式转换

转 Mp4 格式 #> ffmpeg -i input.avi -c:v libx264 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 output.mp4#> ffmpeg -i input.avi -c:v libx264 -strict -2 -s 1......

Contac ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部