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);
};
相关推荐
Csvn1 天前
OpenSpec 详细使用教程
前端
之歆1 天前
Day19_LESS 完全指南——从入门到工程实践
前端·css·less
云水一下1 天前
HTML5 从入门到精通:实战收官——从零搭建完整静态网站,综合运用所有知识
前端·html5
不总是1 天前
Windows 系统 Node.js 免安装版(zip)安装与配置教程(2026 最新)
前端·windows·node.js
冬奇Lab1 天前
每日一个开源项目(第105篇):Twenty - 跳出 Salesforce 的圈套,定义现代开源 CRM
前端·后端·开源
zhangyao9403301 天前
开发pc端时,表格的高度怎么设置才能铺满页面
前端·javascript·elementui
XinZong1 天前
实测OpenClaw虾淘:全民工具AI时代,冷门非工具类的Skill还能出圈吗?
javascript
kjs--1 天前
浏览器书签执行脚本
前端
烛衔溟1 天前
TypeScript 类的类型 —— 作为类型使用
javascript·ubuntu·typescript
之歆1 天前
Day16_JavaScript 轮播图与事件工程实战(下篇)
服务器·开发语言·前端·javascript·网络·性能优化