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);
};
相关推荐
自动化监测Learner29 分钟前
主流 Web 端地图引擎对比:选型指南与优劣分析
javascript
console.log('npc')1 小时前
Git 冲突与 AI 协助指南
前端·人工智能·git·大模型
CocoaKier1 小时前
苹果续费成功,几天后付费协议突然失效,导致线上苹果支付全部失败
ios·apple
爱学堂IT分享2 小时前
Cesium可视化系统实战课程-Cesium教程学习
前端
糖墨夕2 小时前
理解大语言模型:Agent 的“大脑”
前端·agent
Rain的Java大神之路3 小时前
JavaWeb开发如何解决跨域问题
java·前端·后端·nginx·web安全·面试·运维开发
cpolar技术支持3 小时前
浏览器也能跑本地 AI:用 Transformers.js + WebGPU 做一个最小推理 Demo,cpolar 给同事远程体验
前端·ai·cpolar·webgpu·transformers.js
计算机魔术师4 小时前
OpenAI 发布 GPT-6 Astra:多项基准刷新纪录, cybersecurity 能力达 Critical 阈值
前端
xy34534 小时前
Axure9.0中继器遮罩实现方法
前端·ui·html·axure·原型·产品设计
风骏时光牛马4 小时前
智能任务自动化协同AI工作流
前端