Weex填坑筆記(2)-Android環(huán)境集成

Weex的主要用途是用于app的開發(fā)烁挟,所以首先就來嘗試一下怎么集成到android中去破衔,這里需要讀者熟悉基本的安卓開發(fā)辟躏,IDE使用Android Studio若债。

集成的方式有兩種,一種是基于gradle依賴序目,另一種是直接源碼依賴犀斋,具體的集成步驟就不再提了奏篙,參考這里润努,主要針對這過程中可能遇到的問題進行補缺補漏关斜。

解決編譯慢的問題

由于gradle默認使用的jcenter的源,在國內(nèi)訪問實在是慢铺浇,因此需要先加入國內(nèi)的maven鏡像源痢畜,編輯build.gradle文件:

repositories {
        jcenter()
    }

改成(注意有兩個地方)

repositories {
        maven{
            url "http://maven.aliyun.com/nexus/content/groups/public/"
        }
        jcenter()
    }

完整的:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
    repositories {
        maven{
            url "http://maven.aliyun.com/nexus/content/groups/public/"
        }
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.3'
    }
}

allprojects {
    repositories {
        maven{
            url "http://maven.aliyun.com/nexus/content/groups/public/"
        }
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

這樣就可以享受飛一般的感覺了。

庫依賴的問題

Weex可以源碼依賴也可以aar包依賴,這里需要注意的是weex_sdk的版本丁稀,最新的是0.10.0

    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.10.0@aar'   使用gradle依賴
    compile 'com.squareup.picasso:picasso:2.5.2'
    //使用本地依賴吼拥,可將weex源碼里android目錄下的sdk目錄直接以模塊的方式添加到項目里,不用拷貝到當前目錄下线衫,方便更新維護
    compile project(':weex_sdk')

默認生成的例子圖片無法顯示的問題

如果使用填坑筆記1里面默認的方式生成一個項目凿可,會自動生成默認的頁面:src/foo.vue
里面的logoUrl是
https://alibaba.github.io/weex/img/weex_logo_blue@3x.png
在瀏覽器里面沒有問題,但是在android端會顯示不出來

<!--src/foo.vue文件-->

<template>
  <div class="wrapper" @click="update">
    <image :src="logoUrl" class="logo"></image>
    <text class="title">Hello {{target}}</text>  
  </div>
</template>

<style>
  .wrapper { align-items: center; margin-top: 120px; }
  .title { font-size: 48px; }
  .logo { width: 360px; height: 82px; }
</style>

<script>
  export default {
    data: {
      logoUrl: 'https://weex-project.io/images/ios.png',
      target: 'World'
    },
    methods: {
      update: function (e) {
        this.target = 'Weex!'
        console.log('target:', this.target)
      }
    }
  }
</script>

使用的ImageAdapter:

public class ImageAdapter implements IWXImgLoaderAdapter {
    public ImageAdapter() {
    }

    @Override
    public void setImage(final String url, final ImageView view, WXImageQuality quality, final WXImageStrategy strategy) {

        WXSDKManager.getInstance().postOnUiThread(new Runnable() {

            @Override
            public void run() {
                if(view==null||view.getLayoutParams()==null){
                    return;
                }
                if (TextUtils.isEmpty(url)) {
                    view.setImageBitmap(null);
                    return;
                }
                String temp = url;
                if (url.startsWith("http://")) {
                    temp = "http:" + url;
                }
                if (view.getLayoutParams().width <= 0 || view.getLayoutParams().height <= 0) {
                    return;
                }


                if(!TextUtils.isEmpty(strategy.placeHolder)){
                    Picasso.Builder builder=new Picasso.Builder(WXEnvironment.getApplication());
                    Picasso picasso=builder.build();
                    picasso.load(Uri.parse(strategy.placeHolder)).into(view);

                    view.setTag(strategy.placeHolder.hashCode(),picasso);
                }

                Picasso.with(WXEnvironment.getApplication())
                        .load(temp)
                        //.transform(new BlurTransformation(strategy.blurRadius))
                        .into(view, new Callback() {
                            @Override
                            public void onSuccess() {
                                if(strategy.getImageListener()!=null){
                                    strategy.getImageListener().onImageFinish(url,view,true,null);
                                }

                                if(!TextUtils.isEmpty(strategy.placeHolder)){
                                    ((Picasso) view.getTag(strategy.placeHolder.hashCode())).cancelRequest(view);
                                }
                            }

                            @Override
                            public void onError() {
                                if(strategy.getImageListener()!=null){
                                    strategy.getImageListener().onImageFinish(url,view,false,null);
                                }
                            }
                        });
            }
        },0);
    }
}

會發(fā)現(xiàn)圖片獲取使用的是Picasso庫桶雀,Picasso在處理的時候出現(xiàn)了錯誤矿酵,這個問題卡殼了很久唬复,其實解決的辦法很簡單矗积,就是換一張圖片,比如這張圖片:)

https://puui.qpic.cn/qqvideo_ori/0/u00227vq2f4_228_128/0

參考資料:

https://weex-project.io/cn/guide/integrate-to-your-app.html
https://github.com/xkli/WXSample

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末敞咧,一起剝皮案震驚了整個濱河市棘捣,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌休建,老刑警劉巖乍恐,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異测砂,居然都是意外死亡茵烈,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門砌些,熙熙樓的掌柜王于貴愁眉苦臉地迎上來呜投,“玉大人,你說我怎么就攤上這事存璃÷丶觯” “怎么了?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵纵东,是天一觀的道長粘招。 經(jīng)常有香客問我,道長偎球,這世上最難降的妖魔是什么洒扎? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮衰絮,結(jié)果婚禮上袍冷,老公的妹妹穿的比我還像新娘。我一直安慰自己岂傲,他們只是感情好难裆,可當我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般乃戈。 火紅的嫁衣襯著肌膚如雪褂痰。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天症虑,我揣著相機與錄音缩歪,去河邊找鬼。 笑死谍憔,一個胖子當著我的面吹牛匪蝙,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播习贫,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼逛球,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了苫昌?” 一聲冷哼從身側(cè)響起颤绕,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎祟身,沒想到半個月后奥务,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡袜硫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年氯葬,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片婉陷。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡帚称,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出憨攒,到底是詐尸還是另有隱情世杀,我是刑警寧澤,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布肝集,位于F島的核電站瞻坝,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏杏瞻。R本人自食惡果不足惜所刀,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捞挥。 院中可真熱鬧浮创,春花似錦、人聲如沸砌函。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至垦沉,卻和暖如春煌抒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背厕倍。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工寡壮, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人讹弯。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓况既,卻偏偏與公主長得像,于是被迫代替她去往敵國和親组民。 傳聞我的和親對象是個殘疾皇子棒仍,可洞房花燭夜當晚...
    茶點故事閱讀 44,955評論 2 355

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,144評論 25 707
  • “不要向任何人妥協(xié)你的人生降狠,因為到最后,陪伴你的只有自己庇楞。”幽藍色的燈光落在他斬釘截鐵的唇角否纬,像一座永不低頭的孤島...
    LLLL小姐閱讀 417評論 0 0
  • 很久沒有觸碰吕晌,很久沒有再去念出,但就是如此深刻临燃,也是一種信仰睛驳,信念,那就是斯膜廊。曾經(jīng)有過這樣的一句話:有人住高樓乏沸,有...
    隱瞳之眸閱讀 267評論 0 0
  • 感覺是靈魂的低語。 任何一個走在內(nèi)在成長之路上的人都知道情緒的重要:不應(yīng)該壓抑爪瓜,而是要面對蹬跃,繼而客觀地理解,最終放...
    嘉麟0411閱讀 576評論 0 0
  • 獨而不孤 活得精致 列個清單 一個人 去小型KTV唱歌 去看場電影 去游游有古韻的地方…… 活得精致些 不要只是為...
    活得精致獨而不孤閱讀 191評論 0 0