Weex项目初始化weex-iOS集成

简介: 项目初始化1、没有现成的工程的话新建iOS项目命令行cd到项目根目录 执行 pod init,会创建一个pod配置文件用编辑器打开,加上 pod 'WeexSDK', :path=>'.

项目初始化

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:

  1. //  
  2. //  ViewController.h  
  3. //  weexDemo3  
  4. //  
  5. //  Created by admin on 16/8/3.  
  6. //  Copyright © 2016年 admin. All rights reserved.  
  7. //  
  8.   
  9. #import <UIKit/UIKit.h>  
  10.   
  11. @interface ViewController : UIViewController  
  12. - (instancetype)initWithJs:(NSString *)filePath;  
  13. @end

 ViewController.m  


#import "ViewController.h"

#import <WeexSDK/WeexSDK.h>



@interface ViewController()

@property(nonatomic,strong)WXSDKInstance *instance;

@property(nonatomic,strong)UIView *weexView;

@end





@implementation ViewController


NSURL *jsUrl;




-(instancetype)initWithJS:(NSString *)filePath {


    self = [superinit];

    if (self) {

        NSString *mai = [[NSBundlemainBundle]bundlePath];


        //        NSString *path=[NSString stringWithFormat:@"http://192.168.232.13:8080/examples/js/%@",filePath];  

        

         NSString *path=[NSStringstringWithFormat:@"file://%@/js/%@",[NSBundlemainBundle].bundlePath,filePath];

        NSLog(@"-----path:%@",path);

        jsUrl=[NSURLURLWithString:path];

    }

    returnself;

    




}


- (void)viewDidLoad {

    [superviewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.


    _instance = [[WXSDKInstancealloc]init];

    _instance.viewController =self;

    _instance.frame=self.view.frame;

    __weaktypeof(self) weakSelf =self;

    _instance.onCreate = ^(UIView *view) {

        [weakSelf.weexViewremoveFromSuperview];

        weakSelf.weexView = view;

        [weakSelf.viewaddSubview:weakSelf.weexView];

    };

    _instance.onFailed = ^(NSError *error) {

        NSLog(@"加载错误%@",error);

    };

    

    _instance.renderFinish = ^ (UIView *view) {

        NSLog(@"加载完成");

    };

    if (!jsUrl) {

        return;

    }

    [_instancerenderWithURL:jsUrl];

    

    

    self.view.backgroundColor=[UIColorwhiteColor];

}


- (void)dealloc

{

    [_instancedestroyInstance];

}



- (void)didReceiveMemoryWarning {

    [superdidReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}



@end



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

引入头文件

#import "ViewController.h"

创建导航视图:

#import "AppDelegate.h"

#import <WeexSDK/WeexSDK.h>

#import "ViewController.h"



@interface AppDelegate ()


@end


@implementation AppDelegate



- (void)initWeex {

    [WXAppConfigurationsetAppGroup:@"ailinggong"];

    [WXAppConfigurationsetAppName:@"weexDemo"];

    [WXAppConfigurationsetAppName:@"1.0.0"];

    [WXSDKEngineinitSDKEnviroment];


}




- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // Override point for customization after application launch.

    [selfinitWeex];

    

    ViewController *vc=[[ViewControlleralloc]initWithJS:@"about-me.js"];

    UINavigationController *nav=[[UINavigationControlleralloc]initWithRootViewController:vc];

    self.window.rootViewController=nav;

    

    returnYES;

}




运行


目录
相关文章
|
8天前
|
编解码 Android开发 iOS开发
探索安卓与iOS开发的差异:平台选择对项目成功的影响
在移动应用开发的世界中,安卓和iOS是两大主导力量。本文深入探讨了这两个平台在开发过程中的主要差异,并分析了这些差异如何影响项目的成功。通过对比分析,我们旨在为开发者提供决策时的参考,帮助他们根据项目需求和目标用户群体做出最合适的平台选择。
|
5天前
|
Java Maven
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
这篇文章是一份关于Maven的安装和配置指南,包括下载、环境变量设置、配置文件修改、IDEA集成Maven以及解决jar包下载问题的方法。
2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
|
1月前
|
Java Android开发 iOS开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
【7月更文挑战第8天】在移动应用开发的广阔天地中,Android与iOS两大平台各自占据着半壁江山。本文将深入探讨这两个平台在开发环境、用户界面设计、性能优化以及市场覆盖等方面的根本差异,并分析这些差异如何影响项目的成功。通过比较和分析,旨在为开发者在选择平台时提供更全面的视角,帮助他们根据项目需求和目标市场做出更明智的决策。
|
1月前
|
安全 Java 数据安全/隐私保护
在Java项目中集成单点登录(SSO)方案
在Java项目中集成单点登录(SSO)方案
|
23天前
|
Linux Android开发 iOS开发
安卓与iOS开发:平台选择对项目成功的影响
在移动应用开发的广阔舞台上,安卓与iOS两大操作系统各自占据着举足轻重的地位。本文深入探讨了这两个平台在技术特性、市场覆盖、用户群体和开发成本等方面的差异,并分析了这些差异如何影响项目的最终成功。通过比较分析,旨在为开发者提供决策依据,帮助他们根据项目需求和目标受众做出明智的平台选择。
|
6天前
|
Java Android开发 iOS开发
探索安卓与iOS开发的差异:平台选择对项目成功的影响
在移动应用开发的世界中,选择正确的平台是关键。本文通过比较安卓和iOS开发的核心差异,揭示平台选择如何影响应用的性能、用户体验和市场覆盖。我们将深入探讨各自的开发环境、编程语言、用户界面设计原则以及发布流程,以帮助开发者和企业做出明智的决策。
27 9
|
8天前
|
机器学习/深度学习 设计模式 人工智能
面向对象方法在AIGC和大数据集成项目中的应用
【8月更文第12天】随着人工智能生成内容(AIGC)和大数据技术的快速发展,企业面临着前所未有的挑战和机遇。AIGC技术能够自动产生高质量的内容,而大数据技术则能提供海量数据的支持,两者的结合为企业提供了强大的竞争优势。然而,要充分利用这些技术,就需要构建一个既能处理大规模数据又能高效集成机器学习模型的集成框架。面向对象编程(OOP)以其封装性、继承性和多态性等特点,在构建这样的复杂系统中扮演着至关重要的角色。
26 3
|
8天前
|
移动开发 Android开发 iOS开发
安卓与iOS开发:平台选择对项目成功的影响
【8月更文挑战第12天】 在数字时代,移动应用开发成为企业和个人实现创意、提供服务的重要手段。选择正确的开发平台—安卓或iOS—对于确保项目顺利进行和最终成功至关重要。本文将探讨两个主流移动操作系统的特点,以及它们如何影响应用的性能、用户体验和市场覆盖,帮助开发者做出明智的决策。
|
7天前
|
iOS开发 Perl
IOS集成flutter_boost 3.0常见问题
IOS集成flutter_boost 3.0常见问题
13 0
|
26天前
|
开发者 Windows
三类代码协同模式问题之判断项目的协同规模决定采用集成分支问题如何解决
三类代码协同模式问题之判断项目的协同规模决定采用集成分支问题如何解决