鍍金池/ 問答/Android  網(wǎng)絡(luò)安全  HTML/ navigator.push跳轉(zhuǎn)本地文件頁面空白

navigator.push跳轉(zhuǎn)本地文件頁面空白

我使用
navigator.push({url:'http://someurl.com/xxx/test.js'})
的時候頁面正常跳轉(zhuǎn),顯示正常,但是用weex build android | weex run android生成的app里面我跳到本地文件:
navigator.push({url:"file://assets/dist/test.js"})
回調(diào)顯示跳轉(zhuǎn)成功,但是頁面是空白。
安卓的模板文件也是才加的。。。

回答
編輯回答
不舍棄

(解決方案具有時效性,未來weex的adnroid模板可能會解決這個問題)

自己搗鼓解決了.參考http://www.shymean.com/articl...4.3節(jié)
然后android模版里有bug,最簡單的修復(fù)方法是在WxPageActivity.java的onCreate方法

try {
        JSONObject initData = new JSONObject(uri.toString());
        String bundleUrl = initData.optString("WeexBundle", null);
        if (bundleUrl != null) {
          mUri = Uri.parse(bundleUrl);
        }

        ......
        ......
      } catch (JSONException e) {
        e.printStackTrace();
      }
    }

這里catch里面加一句mUri = Uri.parse(uri.toString());

......
} catch (JSONException e) {
    e.printStackTrace();
    mUri = Uri.parse(uri.toString());
}

這只是搞著玩兒。。當(dāng)然最好應(yīng)該是在if (uri != null){下面寫,暫時不會android,多了解一點(diǎn)再搗鼓。

==============================================

JSONObject initData = new JSONObject(uri.toString());
String bundleUrl = initData.optString("WeexBundle", null);

的意思。。。如果我寫navigator.push({url:'{"WeexBundle":"files://assets/dist/test.js"}'})豈不就是可以了....

2017年12月17日 18:16