Wifi环境下Unity开发iOS应用启动后HTTPS请求未弹出是否允许无线数据使用数据的弹窗

情况说明

笔者项目在首次启动,登录界面点击登录按钮会先HTTPS请求创建帐号,但是在WIFI网络下,请求后一直提示网络连接失败。但是切换到流量包后,则会弹出"无线数据"使用数据的弹窗,选择允许后则可顺利进入。

分析

错误原因就是在WIFI环境下HTTPS请求未能弹出权限界面,导致当前无线数据的权限是关闭的,而使用流量时又可以内部触发弹出权限选择界面。

具体的原因网上说法也很多,比如:

  • WIFI设置了代理,流量未设置代理。导致WIFI环境下的HTTPS请求被拦截,未能弹出选择窗口。
  • Info.list下未配置NSAllowsArbitraryLoads权限为true

上述笔者这边都排除了,但是有个可能是笔者这边HTTPS请求是使用的是一个比较老的稳定性挺好,且用于多个线上项目的Best HTTP插件,有可能是Unity升级后插件适配的问题?

解决方案

一般而言App首次启动,网络请求时都会弹出是否允许使用数据的弹窗。但是这种坑就遇到了,又不想换Best HTTP插件。

遂写了个iOS插件,在进入登录界面时模拟一次网络请求。代码如下:

#import <Foundation/Foundation.h>

@interface IWebRequestPermission : NSObject
 
#ifdef __cplusplus
extern "C" {
#endif
    BOOL IsConnectedToInternet();
    void TryRequestPermissionIfNeeded();
#ifdef __cplusplus
}
#endif
@end

#import "WebRequestPermission.h"
// 引入 SystemConfiguration.framework
#import <SystemConfiguration/SystemConfiguration.h>

@implementation IWebRequestPermission
// 检查当前网络连接状态
BOOL IsConnectedToInternet() {
    BOOL isConnected = NO;
    SCNetworkReachabilityRef reachability = SCNetworkReachabilityCreateWithName(NULL, "www.baidu.com");
    SCNetworkReachabilityFlags flags;
    if (SCNetworkReachabilityGetFlags(reachability, &flags)) {
        isConnected = ((flags & kSCNetworkReachabilityFlagsReachable) != 0);
    }
    CFRelease(reachability);
    return isConnected;
}

// 在应用启动时尝试发起一个简单的网络请求
void TryRequestPermissionIfNeeded() {
    if (IsConnectedToInternet()) {
        NSURL *url = [NSURL URLWithString:@"https://www.baidu.com"];
        NSURLSessionDataTask *dataTask = [[NSURLSession sharedSession] dataTaskWithURL:url completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
            // 处理网络请求的结果
        }];
        [dataTask resume];
    }
}
@end

在进入登录界面时Unity侧调用TryRequestPermissionIfNeeded()即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.kler.cn/a/273999.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C语言 扫雷游戏

写了这么长时间的关于C语言的基础知识&#xff0c;相信大家已经学会了使用C语言书写一些基础的代码&#xff0c;上次还编写了三子棋游戏的代码&#xff0c;这次我将编写一个基础版的扫雷游戏。 首先&#xff0c;创建三个文件&#xff0c;两个源文件&#xff0c;一个头文件&…

Python之Web开发中级教程----Django站点管理

Python之Web开发中级教程----Django站点管理 网站的开发分为两部分&#xff1a;内容发布和公共访问 内容发布是由网站的管理员负责查看、添加、修改、删除数据 Django能够根据定义的模型类自动地生成管理模块 使用Django的管理模块, 需要按照如下步骤操作 : 1.管理界面本地…

【C语言】C语言内存函数

&#x1f451;个人主页&#xff1a;啊Q闻 &#x1f387;收录专栏&#xff1a;《C语言》 &#x1f389;道阻且长&#xff0c;行则将至 前言 这篇博客是关于C语言内存函数(memcpy,memmove,memset,memcmp)的使用以及部分的模拟实现 memcpy,memmove,memset,memc…

防火墙的原理和配置

“防火墙”一词起源于建筑领域&#xff0c;用来隔离火灾&#xff0c;阻止火势从一个区域蔓延到另一个区域。引入到通信领域&#xff0c;防火墙这一具体设备通常用于两个网络之间有针对性的、逻辑意义上的隔离。这种隔离是选择性的&#xff0c;隔离“火”的蔓延&#xff0c;而又…

《计算机视觉中的深度学习》之目标检测算法原理

参考&#xff1a;《计算机视觉中的深度学习》 概述 目标检测的挑战&#xff1a; 减少目标定位的准确度减少背景干扰提高目标定位的准确度 目标检测系统常用评价指标&#xff1a;检测速度和精度 提高精度&#xff1a;有效排除背景&#xff0c;光照和噪声的影响 提高检测速度…

JAVA八股day1

遇到的问题 相比于包装类型&#xff08;对象类型&#xff09;&#xff0c; 基本数据类型占用的空间往往非常小为什么说是几乎所有对象实例都存在于堆中呢&#xff1f;静态变量和成员变量、成员变量和局部变量的区别为什么浮点数运算的时候会有精度丢失的风险&#xff1f;如何解…

Re62:读论文 GPT-2 Language Models are Unsupervised Multitask Learners

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文全名&#xff1a;Language Models are Unsupervised Multitask Learners 论文下载地址&#xff1a;https://cdn.openai.com/better-language-models/language_models_are_unsupervised_multitask_learner…

手机备忘录怎么导出到电脑,如何将手机备忘录导出到电脑

备忘录是我们日常生活和工作中常用的工具之一&#xff0c;我们可以在手机上轻松地记录重要的事务、想法和灵感。然而&#xff0c;在某些情况下&#xff0c;我们可能需要将手机备忘录导出到电脑进行更详细的整理和管理。那么&#xff0c;手机备忘录怎么导出到电脑&#xff0c;如…

性能测试-Jmeter常用元件基础使用

一、Jmeter元件 #线程组 添加HTTP请求 #配置元件 配置元件内的元件都是用于进行初始化的东西 #监听器 监听器主要是用来获取我们使用取样器发送请求后的响应数据相关信息 #定时器 定时器主要用来控制我们多久后执行该取样器&#xff08;发送请求&#xff09; #前置处理器 前置处…

【每日一问】手机如何开启USB调试?

一、背景 当电脑跟手机之间需要进行交互的时候&#xff0c;可以考虑使用usb进行连接。那么手机如何开启USB调试呢&#xff1f; 二、操作步骤&#xff1a; 思路&#xff1a; 步骤1&#xff1a;手机开启开发者模式 步骤2&#xff1a;在开发者模式中&#xff0c;开启“USB调试”…

elment-ui el-tabs组件 每次点击后 created方法都会执行2次

先看错误的 日志打印: 错误的代码如下: 正确的日志打印: 正确的代码如下: 前言: 在element-ui的tabs组件中,我们发现每次切换页面,所有的子组件都会重新渲染一次。当子页面需要发送数据请求并且子页面过多时,这样会过多的占用网络资源。这里我们可以使用 v-if 来进行…

【四 (4)数据可视化之 Ploty Express常用图表及代码实现 】

目录 文章导航一、介绍二、安装Plotly Express三、导入Plotly Express四、占比类图表1、饼图2、环形图3、堆叠条形图4、百分比堆叠条形图 五、比较排序类1、条形图2、漏斗图3、面积漏斗图 六、趋势类图表1、折线图2、多图例折线图3、分列折线图4、面积图5、多图例面积图 七、频…

layuiAdmin-通用型后台模板框架【广泛用于各类管理平台】

1. 主页 1.1 控制台 2. 组件 3. 页面 3.1 个人主页 3.2 通讯录 3.3 客户列表 3.4 商品列表 3.5 留言板 3.6 搜索结果 3.7 注册 3.8 登入 3.9 忘记密码 4. 应用 4.1 内容系统 4.1.1 文章列表 4.1.2 分类管理 4.1.3 评论管理 4.2 社区系统 4.2.1 帖子列表 4.2.2 回…

html5播放flv视频

参考&#xff1a;flv-h265 - npmHTML5 FLV Player. Latest version: 1.7.0, last published: 6 months ago. Start using flv-h265 in your project by running npm i flv-h265. There are no other projects in the npm registry using flv-h265.https://www.npmjs.com/packag…

网页429:请求过多

网页429&#xff1a;请求过多 当您的计算机或设备向网站发送太多请求时&#xff0c;尤其是在尝试登录或访问网站的高安全性部分时&#xff0c;可能会收到这个错误。这通常是因为服务器设置了速率限制器&#xff0c;以防止恶意攻击或过度使用。 尝试以下方法 等待一段时间后…

ET框架新起一个服务及实现服务之间的消息通讯

ET框架是熊猫大大写的双端框架&#xff0c;游戏客户端和服务端都是用C#语言来编写 新起一个服务名比如叫做Activity 1.配置文件StartSceneConfig 2. SceneFactory switch (scene.SceneType) {case SceneType.Activity:break; } 定义SceneType枚举类型 public enum SceneTyp…

java毕业设计 | springboot+vue游戏交流网站(附源码)

1&#xff0c; 概述 本次的毕业设计主要就是在基于Java语言平台下设计并开发一个游戏网站系统软件。运用当前Google提供的Java来实现对游戏信息和游戏道具查询。当然使用的数据库是Mysql。尽管没有面向对象的数据库的作用强大&#xff0c;但是在Java开发上还是比较的灵活和方便…

中国传统游戏-幻方-c/c++实现

幻方&#xff08;Magic Square&#xff09;是一种将数字安排在正方形格子中&#xff0c;使每行、列和对角线上的数字和都相等的方法。 幻方也是一种中国传统游戏。旧时在官府、学堂多见。它是将从一到若干个数的自然数排成纵横各为若干个数的正方形&#xff0c;使在同一行、同…

html--蝴蝶

<!DOCTYPE html> <html lang"en" > <head> <meta charset"UTF-8"> <title>蝴蝶飞舞</title> <link rel"stylesheet" href"https://cdnjs.cloudflare.com/ajax/libs/meyer-reset/2.0/reset.min.cs…

生成微信小程序二维码

首页 -> 统计 可以通过上面二个地方配置&#xff0c;生成小程序的二维码&#xff0c;并且在推广分析里&#xff0c;有详细的分析数据&#xff0c;
最新文章