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);
};
相关推荐
黑码哥9 分钟前
ViewHolder设计模式深度剖析:iOS开发者掌握Android列表性能优化的实战指南
android·ios·性能优化·跨平台开发·viewholder
夜郎king13 分钟前
HTML5 SVG 实现日出日落动画与实时天气可视化
前端·html5·svg 日出日落
辰风沐阳21 分钟前
JavaScript 的宏任务和微任务
javascript
夏幻灵1 小时前
HTML5里最常用的十大标签
前端·html·html5
冰暮流星1 小时前
javascript之二重循环练习
开发语言·javascript·数据库
Mr Xu_1 小时前
Vue 3 中 watch 的使用详解:监听响应式数据变化的利器
前端·javascript·vue.js
未来龙皇小蓝2 小时前
RBAC前端架构-01:项目初始化
前端·架构
程序员agions2 小时前
2026年,微前端终于“死“了
前端·状态模式
万岳科技系统开发2 小时前
食堂采购系统源码库存扣减算法与并发控制实现详解
java·前端·数据库·算法
2501_915106322 小时前
app 上架过程,安装包准备、证书与描述文件管理、安装测试、上传
android·ios·小程序·https·uni-app·iphone·webview