uniapp的IOS中首次进入,无网络问题

uniapp的IOS中首次进入,无网络问题

该问题是由于ios中app打开,ios会弹出网络选项,必须选择后才会有网络,即便此时手机是有网络也是一样

定义网络状态变量

javascript 复制代码
data() {
    return {
      networkStatusChangeListener: null,
    };
  },

实际应用

javascript 复制代码
if (isIOS()) {
      this.setIosNextWork();
    } else {
      // 进行网络请求
}

 async setIosNextWork() {
      try {
        const { networkType } = await getNetworkType();
        if (networkType != "none") {
            // 进行网络请求
        }
      } catch (error) {
        console.log("getNetworkType error", error);
      }

      try {
        this.networkStatusChangeListener = async (res) => {
          if (res.isConnected) {
             // 进行网络请求
          }
        };
        onNetworkStatusChange(this.networkStatusChangeListener);
      } catch (error) {
        console.log("onNetworkStatusChange error", error);
      }
},

beforeDestroy() {
    if (isIOS() && this.networkStatusChangeListener) {
      offNetworkStatusChange(this.networkStatusChangeListener);
    }
},

封装网络状态模块js

javascript 复制代码
/**
 * 获取网络状态
 * @description 获取网络状态
 * @returns {Promise<any>}
 */
const getNetworkType = () => {
  return new Promise((resolve, reject) => {
    uni.getNetworkType({
      success: (res) => {
        resolve(res);
      },
      fail: (err) => {
        reject(err);
      },
    });
  });
};

/**
 * 监听网络状态变化
 * @description 监听网络状态变化
 * @param {Function} CALLBACK 回调函数
 * @returns {void}
 */
const onNetworkStatusChange = (CALLBACK) => {
  uni.onNetworkStatusChange(CALLBACK);
};

/**
 * 取消监听网络状态变化
 * @description 取消监听网络状态变化
 * @param {Function} CALLBACK 回调函数
 * @returns {void}
 */
const offNetworkStatusChange = (CALLBACK) => {
  uni.offNetworkStatusChange(CALLBACK);
};
相关推荐
asinnn3 小时前
8GB 视频只读取 66KB?聊聊浏览器端大文件低内存元数据修改的实现原理
javascript
牧艺3 小时前
cos-design 4.0:91 个特效组件一次捅成 React / Vue / Web Components / Core
前端·vue.js·web components
沙蒿同学3 小时前
Wails v2 实战:用 Go + Vue3 做一个真正能用的 AI 桌面应用
前端·javascript·后端
某亿3 小时前
为什么我放弃了 esbuild,改用 typescript 包做运行时编译
前端·electron
Blanche15003 小时前
优化 RAG 应用提升问答准确度
前端
颜进强3 小时前
09 · NestJS Middleware 中间件:链路最外层那个"最像 Express"的家伙
前端·后端·ai编程
创新技术阁3 小时前
FastapiAdmin 实战:演示模式开关失效的排查记录
前端·后端·fastapi
拖孩3 小时前
一个人 + AI 做的小程序,一个半月把服务器钱赚回来一半了
前端·后端·微信小程序
风骏时光牛马3 小时前
后端服务接口开发与业务逻辑实现
前端
编程老船长3 小时前
权限不只是菜单按钮——QuickBlue 的 RBAC 与行级数据权限是怎么落地的
java·前端·后端