里豳朝 发表于 2025-6-1 21:05:16

uniApp打包IOSApp,初次进入APP接口无数据

描述

使用uniApp打包IOSApp发布后,在初次进入APP时,会有网络连接权限获取的过程,然而,在获取权限时,调用接口的过程并没有停下来。所以会需要自己手动再次调用接口才行。
解决方案

可以在对接口封装时,添加uniApp的监听网络变化的APIuni.onNetworkStatusChange,获取网络变化时刷新当前页面。
实现代码

// An highlighted block
const BASE_URL = "这里是地址"
export const request = ( url='', data={}, method="GET" ) => {
        let reLaunchPage = 1;   //给个标志,预防多次刷新
        const header_tmp = {
                "token": "这里是token"
        };
        return new Promise((resolve,reject) => {
                //监听网络变化
                uni.onNetworkStatusChange(function (res) {
                // res.isConnected == true网络连接 ;res.networkType是网络类型2G、3G、4G、WIFI等,可以通过判断类型,反馈网络情况的好坏
                        if ( res.isConnected && res.networkType != 'none' ) {
                                console.log('网络已连接, 欢迎回来!');
                                setTimeout(() => {
                                        // 刷新当前页
                                        if ( reLaunchPage == 1 ) {
                                                reLaunchPage += 1;
                                                const page = getCurrentPages();//获取当前页面的路由信息
                                                const { options, route } = page;
                                                const path = `/${route}?${qsRouterStringify(options)}`;
                                                uni.reLaunch({ url: path });//从新跳转当前页面
                                                return false;
                                        }
                                }, 1500)
                        }
                })
                // 连接网络后,继续调用接口
                uni.request({
                        url: BASE_URL + url,
                        method: method,
                        data: data,
                        header: header_tmp,
                        success: (res) => {
                                //自己写处理方法
                        },
                        fail: (err) => {
                                //自己写处理方法
                        },
                        complete (res) {
                                //自己写处理方法
                        },
                });
        });
};export const qsStringify = ( obj ) => { // 格式转换: { a: 'b', b: 'c' } => 'a=b&b=c'
        return Object.keys(obj).map((key) => `${key}=${obj}`).join("&");
};
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

甦忻愉 发表于 2025-10-20 23:59:09

前排留名,哈哈哈

溶绚 发表于 2025-10-26 06:10:22

东西不错很实用谢谢分享

汤昕昕 发表于 2025-12-6 12:31:04

谢谢分享,试用一下

筒霓暄 发表于 2025-12-8 01:18:18

鼓励转贴优秀软件安全工具和文档!

珠尿娜 发表于 2025-12-18 21:27:29

不错,里面软件多更新就更好了

飧沾 发表于 2025-12-25 07:47:09

谢谢楼主提供!

欧阳梓蓓 发表于 2025-12-25 10:07:35

收藏一下   不知道什么时候能用到

王平莹 发表于 2025-12-28 06:45:43

感谢分享

蛟当罟 发表于 2026-1-6 02:02:27

感谢发布原创作品,程序园因你更精彩

夔新梅 发表于 2026-1-8 14:27:05

鼓励转贴优秀软件安全工具和文档!

呶募妙 发表于 2026-1-16 01:14:52

过来提前占个楼

瞧蛀 发表于 2026-1-16 11:17:57

yyds。多谢分享

辜酗徇 发表于 2026-1-17 13:18:38

谢谢分享,试用一下

笃扇 发表于 2026-1-20 13:26:30

感谢,下载保存了

辅箱肇 发表于 2026-1-20 21:03:47

新版吗?好像是停更了吧。

翁谌缜 发表于 2026-1-23 07:23:48

谢谢分享,试用一下

盖彗云 发表于 2026-1-24 02:52:00

感谢分享

时思美 发表于 2026-1-24 06:36:28

谢谢分享,辛苦了

汪之亦 发表于 2026-1-24 07:32:39

东西不错很实用谢谢分享
页: [1] 2
查看完整版本: uniApp打包IOSApp,初次进入APP接口无数据