weex快速入門

我發(fā)現(xiàn)好多人竟然在不停地問weex的官方網(wǎng)址 https://weex.apache.org/cn/

什么是weex

引用官方的話

Weex 是一套簡單易用的跨平臺開發(fā)方案店读,能以 web 的開發(fā)體驗構建高性能择同、可擴展的 native 應用,為了做到這些裹纳,Weex 與 Vue 合作紧武,使用 Vue 作為上層框架,并遵循 W3C 標準實現(xiàn)了統(tǒng)一的 JSEngine 和 DOM API朋鞍,這樣一來妥箕,你甚至可以使用其他框架驅(qū)動 Weex,打造三端一致的 native 應用坎吻。

什么意思
叫他框架有失不妥,如他官方所說這是一個解決方案,他統(tǒng)一了不同終端寫一段代碼然后在不同終端上運行,有一點點Java的味道,write once run anywhere ,我們知道Java能夠在各個平臺上運行的原因是java有一個非常牛逼java虛擬機運行,他保證了java程序能夠迅速,,魯棒宇葱、安全的運行再各個平臺,而,weex,也是如此,我們可以向編寫web界面一樣先編寫we文件, 然后通過轉(zhuǎn)換命令將這個we文件轉(zhuǎn)換成js文件,而每個weex事先在Android,iOS,yunos 的 app中嵌入了js引擎,app啟動時,js引擎動態(tài)根據(jù)js文件生成native控件,來和用戶互交

廢話少說,下面就進行環(huán)境搭建

  1. 安裝nodejs 具體如何安裝nodejs請移步官網(wǎng) https://nodejs.org/en/
    安裝完成后檢測是否安裝成功
> $ node -v

v6.3.1
$ npm -v
3.10.3

注意 : npm 是一個 JavaScript 包管理工具刊头,在安裝完nodejs, npm 也會被同時安裝上 它可以讓開發(fā)者輕松共享和重用代碼原杂。Weex 很多依賴來自社區(qū)您机,同樣,Weex 也將很多工具發(fā)布到社區(qū)方便開發(fā)者使用被碗。

2 安裝 weex 命令

$ npm install -g weex-toolkit
$ weex -v
v1.0.3
weex-builder : v0.2.4
weex-previewer : v1.3.4

檢測weex 是否安裝成功

$ weex -v
v1.0.4

  • weex-builder : v0.2.6
  • weex-previewer : v1.3.7

至此weex環(huán)境搭建完成

將weex集成到現(xiàn)有的項目中

集成有兩種方式
  1. 源碼依賴:能夠快速使用WEEX最新功能仿村,可以根據(jù)自己項目的特性進行相關改進兴喂。
  2. SDK依賴:WEEX 會在jcenter 定期發(fā)布穩(wěn)定版本。jcenter注:國內(nèi)可能需要翻墻

tips :我這里配置第一種,為啥,因為對于新手簡單啊.

前期準備

已經(jīng)安裝了JDK version>=1.7 并配置了環(huán)境變量
已經(jīng)安裝Android SDK 并配置環(huán)境變量畏鼓。
Android SDK version 23 (compileSdkVersion in build.gradle
)
SDK build tools version 23.0.1 (buildToolsVersion in build.gradle
)
Android Support Repository >= 17 (for Android Support Library)

不啰嗦,as新建Android項目 將下面依賴放入app.build中

compile 'com.android.support:recyclerview-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.alibaba:fastjson:1.1.46.android'
compile 'com.taobao.android:weex_sdk:0.11.0@aar'

注意不要亂改版本,目前weex還處于不穩(wěn)定中,各個版本可能還不兼容,避免出現(xiàn)沒必要的bug

代碼實現(xiàn)

照葫蘆畫瓢不要問我為撒,

圖片接口實現(xiàn)
<pre>
package com.weex.sample;
import android.widget.ImageView;
import com.taobao.weex.adapter.IWXImgLoaderAdapter;
import com.taobao.weex.common.WXImageStrategy;
import com.taobao.weex.dom.WXImageQuality;
/**

  • Created by lixinke on 16/6/1.
    */
    public class ImageAdapter implements IWXImgLoaderAdapter {
    @Override
    public void setImage(String url, ImageView view, WXImageQuality quality, WXImageStrategy strategy) {
    //實現(xiàn)你自己的圖片下載云矫,否則圖片無法顯示汗菜。
    }
    }

</pre>

初始化Application
<pre> package com.weex.sample;
import android.app.Application;
import com.taobao.weex.InitConfig;
import com.taobao.weex.WXSDKEngine;
/**

  • 注意要在Manifest中設置android:name=".WXApplication"
  • 要實現(xiàn)ImageAdapter 否則圖片不能下載
  • gradle 中一定要添加一些依賴陨界,否則初始化會失敗。
  • compile 'com.android.support:recyclerview-v7:23.1.1'
  • compile 'com.android.support:support-v4:23.1.1'
  • compile 'com.android.support:appcompat-v7:23.1.1'
  • compile 'com.alibaba:fastjson:1.1.45'
    */
    public class WXApplication extends Application {
    @Override
    public void onCreate() {
    super.onCreate();
    InitConfig config=new InitConfig.Builder().setImgAdapter(new ImageAdapter()).build();
    WXSDKEngine.initialize(this,config);
    }
    }
    </pre>
    注意不要忘了配置manifast文件Application節(jié)點的name屬性

開干第一個weex界面
<pre> package com.weex.sample;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import com.taobao.weex.IWXRenderListener;
import com.taobao.weex.WXSDKInstance;
import com.taobao.weex.common.WXRenderStrategy;
import com.taobao.weex.utils.WXFileUtils;
public class MainActivity extends AppCompatActivity implements IWXRenderListener {
WXSDKInstance mWXSDKInstance;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWXSDKInstance = new WXSDKInstance(this);
mWXSDKInstance.registerRenderListener(this);
/**
* WXSample 可以替換成自定義的字符串腮敌,針對埋點有效俏扩。
* template 是.we transform 后的 js文件。
* option 可以為空捌木,或者通過option傳入 js需要的參數(shù)赁咙。例如bundle js的地址等免钻。
* jsonInitData 可以為空崔拥。
* width 為-1 默認全屏,可以自己定制拆魏。
* height =-1 默認全屏慈俯,可以自己定制。
*/
mWXSDKInstance.render("WXSample", WXFileUtils.loadFileContent("hello.js", this), null, null, -1, -1, WXRenderStrategy.APPEND_ASYNC);
}
@Override
public void onViewCreated(WXSDKInstance instance, View view) {
setContentView(view);
}
@Override
public void onRenderSuccess(WXSDKInstance instance, int width, int height) {
}
@Override
public void onRefreshSuccess(WXSDKInstance instance, int width, int height) {
}
@Override
public void onException(WXSDKInstance instance, String errCode, String msg) {
}
@Override
protected void onResume() {
super.onResume();
if(mWXSDKInstance!=null){
mWXSDKInstance.onActivityResume();
}
}
@Override
protected void onPause() {
super.onPause();
if(mWXSDKInstance!=null){
mWXSDKInstance.onActivityPause();
}
}
@Override
protected void onStop() {
super.onStop();
if(mWXSDKInstance!=null){
mWXSDKInstance.onActivityStop();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if(mWXSDKInstance!=null){
mWXSDKInstance.onActivityDestroy();
}
}
}
</pre>

附上我集成好的一個app demo
https://github.com/meijingkang/WeexTest.git
為了更加快速的入門(其實你已經(jīng)入門了) 算了,為了你更快速的開干,我繼續(xù)吐槽點東西

安裝plugin

進入Androidstudio->setting->plugin 搜索weex 安裝重啟as

建立自己的界面

點項目的asset目錄(如果沒有就先新建asset目錄)new新建we文件,文件名字隨便起我這里起名hello.we
拷貝控件,
<pre>
<template>
<div>
<div>
<text>cover</text>
<image resize="cover" class="cover" src="https://img.alicdn.com/tps/TB1z.55OFXXXXcLXXXXXXXXXXXX-560-560.jpg"></image>
</div>
<div>
<text>contain</text>
<image resize="contain" class="contain" src="https://img.alicdn.com/tps/TB1z.55OFXXXXcLXXXXXXXXXXXX-560-560.jpg"></image>
</div>
</div>
</template>
<style>
.cover {
width:750px;
height:500px;
border-width: 2px;
border-style: solid;
border-color: #ff0000;
}
.contain {
width:750px;
height:500px;
border-width: 2px;
border-style: solid;
border-color: #ff0000;
}
</style>
<script>
</script>
</pre>
進入as的terminal面板

cd app/src/main/assets 目錄
weex compile hello.we hello.js
ls

解釋下compile命令,這個命令的意思是將hello.we文件轉(zhuǎn)為hello.js文件(app內(nèi)置的js引擎只能解析js文件)
你會看到路徑下多了個js文件,這個文件就是weex生成的供js引擎解析的文件,我們將這個文件配置到這,將c.js替換為你剛才生成的那個js文件

QQ截圖20170410110249.png

ok此時全部工作昨晚,你可以預覽你自己搭建的界面

關于文件的內(nèi)容解釋我們下一篇博客介紹

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末刑峡,一起剝皮案震驚了整個濱河市突梦,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌宫患,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件虚汛,死亡現(xiàn)場離奇詭異泽疆,居然都是意外死亡,警方通過查閱死者的電腦和手機殉疼,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門瓢娜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來礼预,“玉大人,你說我怎么就攤上這事托酸∑馕祝” “怎么了谷丸?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵刨疼,是天一觀的道長。 經(jīng)常有香客問我揩慕,道長迎卤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任宝踪,我火速辦了婚禮碍扔,結果婚禮上秕重,老公的妹妹穿的比我還像新娘。我一直安慰自己溶耘,他們只是感情好,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布凳兵。 她就那樣靜靜地躺著庐扫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪形庭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天斟珊,我揣著相機與錄音富纸,去河邊找鬼旨椒。 笑死堵漱,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的寥粹。 我是一名探鬼主播埃元,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼岛杀,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了类嗤?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤货裹,失蹤者是張志新(化名)和其女友劉穎精偿,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體搔预,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡叶组,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年甩十,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片溢十。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡达吞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出吞鸭,到底是詐尸還是另有隱情,我是刑警寧澤刻剥,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布造虏,位于F島的核電站,受9級特大地震影響漓藕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜揍诽,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一栗竖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧添吗,春花似錦份名、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽委刘。三九已至,卻和暖如春锡移,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背夺饲。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留擂找,地道東北人浩销。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像塘雳,于是被迫代替她去往敵國和親普筹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,737評論 25 707
  • WEEX 是阿里推送的一款基于Node.js,輕量級的移動端跨平臺動態(tài)性技術解決方案,用于構建原生的速度的跨平臺...
    滿山李子閱讀 10,246評論 12 22
  • weex ios 集成WEEX 是阿里推送的一款基于Node.js,輕量級的移動端跨平臺動態(tài)性技術解決方案,用于構...
    John_LS閱讀 1,682評論 0 3
  • 2016年4月21日杏头,阿里巴巴在Qcon大會上宣布開源跨平臺移動開發(fā)工具Weex,Weex能夠完美兼顧性能與動態(tài)性...
    晴天咚咚閱讀 2,887評論 1 15
  • 以前啊醇王,我總會覺得自己生錯了年代呢燥,我覺得自己應該過著身騎白馬走三關的瀟灑生活寓娩,可惜了生在現(xiàn)代。不過幸運的是寞埠,即使生...
    菜菜小仙女閱讀 179評論 0 0