1. 程式人生 > >Weex專案初始化weex-iOS整合

Weex專案初始化weex-iOS整合

專案初始化

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. #import <UIKit/UIKit.h>
  9. @interface ViewController : UIViewController  
  10. - (instancetype)initWithJs:(NSString *)filePath;  
  11. @end

ViewController.m:

  1. //
  2. //  ViewController.m
  3. //  weexDemo3
  4. //
  5. //  Created by admin on 16/8/3.
  6. //  Copyright © 2016年 admin. All rights reserved.
  7. //
  8. #import "ViewController.h"
  9. #import <WeexSDK/WXSDKInstance.h>
  10. @interface ViewController ()  
  11. @property (nonatomicstrongWXSDKInstance *instance;  
  12. @property (nonatomicstrongUIView *weexView;  
  13. @end
  14. @implementation ViewController{  
  15.     NSURL *jsUrl;  
  16. }  
  17. - (instancetype)initWithJs:(NSString *)filePath  
  18. {  
  19.     self = [super init];  
  20.     if (self) {  
  21.         //遠端js檔案
  22. //        NSString *path=[NSString stringWithFormat:@"http://192.168.232.13:8080/examples/js/%@",filePath];
  23.         //本地js檔案
  24.                 NSString *path=[NSString stringWithFormat:@"file://%@/js/%@",[NSBundle mainBundle].bundlePath,filePath];  
  25.         NSLog(@"-----path:%@",path);  
  26.         jsUrl=[NSURL URLWithString:path];  
  27.     }  
  28.     returnself;  
  29. }  
  30. - (void)viewDidLoad {  
  31.     [super viewDidLoad];  
  32.     _instance = [[WXSDKInstance alloc] init];  
  33.     _instance.viewController = self;  
  34.     _instance.frame=self.view.frame;  
  35.     __weak typeof(self) weakSelf = self;  
  36.     _instance.onCreate = ^(UIView *view) {  
  37.         [weakSelf.weexView removeFromSuperview];  
  38.         weakSelf.weexView = view;  
  39.         [weakSelf.view addSubview:weakSelf.weexView];  
  40.     };  
  41.     _instance.onFailed = ^(NSError *error) {  
  42.         NSLog(@"載入錯誤");  
  43.     };  
  44.     _instance.renderFinish = ^ (UIView *view) {  
  45.         NSLog(@"載入完成");  
  46.     };  
  47.     if (!jsUrl) {  
  48.         return;  
  49.     }  
  50.     [_instance renderWithURL: jsUrl];  
  51.     self.view.backgroundColor=[UIColor whiteColor];  
  52. }  
  53. - (void)didReceiveMemoryWarning {  
  54.     [super didReceiveMemoryWarning];  
  55.     // Dispose of any resources that can be recreated.
  56. }  
  57. - (void)dealloc  
  58. {  
  59.     [_instance destroyInstance];  
  60. }  
  61. @end


再開啟AppDelegate.m建立導航控制器

引入標頭檔案

#import "ViewController.h"

建立導航檢視:

  1. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {  
  2.     //weex
  3.     [self initWeex];  
  4.     ViewController *vc=[[ViewController alloc]initWithJs:@"main.js"];  
  5.     UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:vc];  
  6.     self.window.rootViewController=nav;  
  7.     returnYES;  
  8. }  

執行

圖片不顯示是因為圖片載入需要自己建立模組,可以直接把demo的程式碼和pod配置粘過來使用