keeping
keeping
  • 发布:2023-05-15 17:32
  • 更新:2023-05-15 17:32
  • 阅读:249

安卓APP模拟接口数据另类思路

分类:uni-app

以下仅仅是自己开发实践中的一点想法,如有错误,请指正:

uniapp开发中,对于h5应用,通常可以使用mocker-api和mockjs来拦截网络请求,但是APP一般都说不支持,我们开发中主要以app为主,有时候需要mock数据做演示包,思考了很久,突然发现uniapp中有一个拦截器,感觉可以用其来实现数据的mock,思路如下:

/**  
 * app mock思路  
 * 常规的拦截只支持h5,不支持app  
 * 可以使用uni自带的拦截器,利用不存在的网址快速失败从而mock结果数据  
 * 接口虽然失败,但是业务可以拿到mock数据  
 */  
let otherMockFlag = true;  
uni.addInterceptor('request', {  
      invoke(args) {  
        // request 触发前拼接 url   
        let mockUrl = '${可以复用自定义的mockjs}'  
        if(otherMockFlag && args.url === mockUrl){  
            args.url = 'http://localhost/mock' + args.url;  
            //快速失败  
            args.timeout = 1;  
            //模拟接口延迟1000毫秒  
            setTimeout(() => {  
                //可以从mockjs自定义的api里面提取数据  
                args.success({  
                    data: {  
                        code: 0,  
                        data: {  
                            a:1,  
                            b:2  
                        }  
                    }  
                })  
            },1000)  
        }  
      },  
      success(args) {  
        //console.log(JSON.stringify(args));  
      },   
      fail(err) {  
        //console.log('interceptor-fail',err)  
      },   
      complete(res) {  
        //console.log('interceptor-complete',res)  
      }  
})

打包app测试,可以mock数据,就是不知道这样有没有其它的问题

0 关注 分享

要回复文章请先登录注册