找回密码
 立即注册
首页 业界区 安全 uniApp打包IOSApp,初次进入APP接口无数据

uniApp打包IOSApp,初次进入APP接口无数据

里豳朝 2025-6-1 21:05:16
描述

使用uniApp打包IOSApp发布后,在初次进入APP时,会有网络连接权限获取的过程,然而,在获取权限时,调用接口的过程并没有停下来。所以会需要自己手动再次调用接口才行。
解决方案

可以在对接口封装时,添加uniApp的监听网络变化的APIuni.onNetworkStatusChange,获取网络变化时刷新当前页面。
实现代码
  1. // An highlighted block
  2. const BASE_URL = "这里是地址"
  3. export const request = ( url='', data={}, method="GET" ) => {
  4.         let reLaunchPage = 1;   //给个标志,预防多次刷新
  5.         const header_tmp = {
  6.                 "token": "这里是token"
  7.         };
  8.         return new Promise((resolve,reject) => {
  9.                 //监听网络变化
  10.                 uni.onNetworkStatusChange(function (res) {
  11.                 // res.isConnected == true  网络连接 ;res.networkType是网络类型2G、3G、4G、WIFI等,可以通过判断类型,反馈网络情况的好坏
  12.                         if ( res.isConnected && res.networkType != 'none' ) {
  13.                                 console.log('网络已连接, 欢迎回来!');
  14.                                 setTimeout(() => {
  15.                                         // 刷新当前页
  16.                                         if ( reLaunchPage == 1 ) {
  17.                                                 reLaunchPage += 1;
  18.                                                 const page = getCurrentPages();  //获取当前页面的路由信息
  19.                                                 const { options, route } = page[page.length - 1];
  20.                                                 const path = `/${route}?${qsRouterStringify(options)}`;
  21.                                                 uni.reLaunch({ url: path });//从新跳转当前页面
  22.                                                 return false;
  23.                                         }
  24.                                 }, 1500)
  25.                         }
  26.                 })
  27.                 // 连接网络后,继续调用接口
  28.                 uni.request({
  29.                         url: BASE_URL + url,
  30.                         method: method,
  31.                         data: data,
  32.                         header: header_tmp,
  33.                         success: (res) => {
  34.                                 //自己写处理方法
  35.                         },
  36.                         fail: (err) => {
  37.                                 //自己写处理方法
  38.                         },
  39.                         complete (res) {
  40.                                 //自己写处理方法
  41.                         },
  42.                 });
  43.         });
  44. };
复制代码
  1. export const qsStringify = ( obj ) => { // 格式转换: { a: 'b', b: 'c' } => 'a=b&b=c'
  2.         return Object.keys(obj).map((key) => `${key}=${obj[key]}`).join("&");
  3. };
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册