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);
};
相关推荐
ayqy贾杰6 分钟前
Agent First Engineering
前端·vue.js·面试
IT_陈寒15 分钟前
SpringBoot实战:5个让你的API性能翻倍的隐藏技巧
前端·人工智能·后端
iceiceiceice1 小时前
iOS PDF阅读器段评实现:如何从 PDFSelection 精准还原一个自然段
前端·人工智能·ios
大金乄1 小时前
封装一个vue2的elementUI 表格组件(包含表格编辑以及多级表头)
前端·javascript
葡萄城技术团队2 小时前
【性能优化篇】面对万行数据也不卡顿?揭秘协同服务器的“片段机制 (Fragments)”
前端
程序员阿峰2 小时前
2026前端必备:TensorFlow.js,浏览器里的AI引擎,不写Python也能玩转智能
前端
Jans2 小时前
Shipfe — Rust 写的前端静态部署工具:一条命令上线 + 零停机 + 可回滚 + 自动清理
前端
徐小夕2 小时前
JitWord 2.3: 墨定,行远
前端·vue.js·github
南果梨2 小时前
OpenClaw 完整教程!从安装到使用(官方脚本版)
前端·git·开源
大雨还洅下2 小时前
前端手写: new操作符
前端