使用远程app.weex.js发生错误,

zhaokuohaha
  • 19

weex编译成安卓项目, 并且把app.weex.js部署在远程服务器,
但是加载页面的时候却生如下错误:

项目地址: weex_android_demo
app.weex.js地址: http://zhiliao.weex.zhaokuo.c...
web端可以正常运行,可是在安卓端却发下面两个错误:

  1. 点击接收通知菜单时发生 render error错误, 错误截图如下:
    rendererror

  2. 点击其他三个菜单时, 发生network error错误, 错误截图如下:
    networkError

页面架构: 单页
路由方案: Vue-Router
api请求: Axios

这是为什么?大家可以解答一下么??

我目前的思路是:
第一个错误是不是weex规定某些语法不能使用, 但是我用了?
这里是第一个页面的源码: https://github.com/zhaokuohah...

第二个错误, 她说确认run server , 但是我已经将代码部署打远程了, 而且已经确认这加载的就是远程的代码, 所以应该不是renserver的问题, 我猜测会不会是axios的问题??

回复
阅读 4.5k
4 个回答
✓ 已被采纳

第一个渲染错误,可能是<router-link>标签的问题,因为weex这边官网给的示例是不建议使用<router-link>标签,而是直接使用router.push的形式。(不过,你的js页面,我使用weexplayground app ios版,是跳转正常的,所以不确定安卓是什么情况)
http://weex-project.io/cn/ref...

第二个的话,建议用weex提供的module:stream试试,他封装了原生的网络请求。
http://weex-project.io/cn/ref...

路由跳转建议直接使用router.push的形式
我这边使用的是服务器端封装好的一个路由跳转模块

   methods: {
            jump: function (item) {
                weex.requireModule('lc_event').jumpToPage('wxlc://' + server + item.url);
            }

        },

数据请求 在weex中 建议使用它内部的stream模块

     weex.requireModule('stream').fetch({
                   method:'GET',
                   type:'json',
                   url:'/assest/data.json'
               },function (response) {
                       self.movieList.push.apply(self.movieList, response.data.subjects);
               })

谢谢两位的答案, 恰恰是这两个问题, 现在两个问题都搞定了, 我把两部分的代码分别贴出来给大家做个参考吧:

关于vue-router:

错误代码(router-link导航链接):

<div class="footer">
        <div class="footer-item">
          <router-link to='/'>
            <text class="text-center">接收通知</text>
          </router-link>
        </div>
        <div class="footer-item">
          <router-link to='/sendtask'>
            <text class="text-center">发送通知</text>
          </router-link>
        </div>
        <div class="footer-item">
          <router-link to="/joingroup">
            <text class="text-center">加入群</text>
          </router-link>
        </div>
        <div class="footer-item">
          <router-link to="/login">
            <text class="text-center">登录</text>
          </router-link>
        </div>
    </div>

正确代码(编程式导航)

<div class="footer">
        <div class="footer-item" @click="jump('')">
            <text class="text-center">接收通知</text>
        </div>
        <div class="footer-item" @click="jump('sendtask')">
            <text class="text-center">发送通知</text>
        </div>
        <div class="footer-item" @click="jump('joingroup')">
            <text class="text-center">加入群</text>
        </div>
        <div class="footer-item" @click="jump('login')">
            <text class="text-center">登录</text>
        </div>
    </div>

关于请求:

错误代码(axios):

login(){
                let tvm = this;
                axios.post('http://zhiliao.server.zhaokuo.cc/api/Account/login',tvm.account).then(function(res){
                    console.log(res);
                });
            }

正确代码(stream):

var stream = weex.requireModule('stream')

login(){
                let tvm = this;
                
                stream.fetch({
                    method:'POST',
                    headers :{
                        'Content-Type':'application/json' //如果需要json传输,content-type要更改
                    },
                    type:'json',
                    body:JSON.stringify(tvm.account), //请求体, 直接收string参数, 所以要转化一下
                    url:'http://zhiliao.server.zhaokuo.cc/api/Account/login'
                },function(res){
                    console.log(res);
                });
            }
宣传栏