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" {
#endifBOOL 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()即可
相关文章:
Wifi环境下Unity开发iOS应用启动后HTTPS请求未弹出是否允许无线数据使用数据的弹窗
情况说明 笔者项目在首次启动,登录界面点击登录按钮会先HTTPS请求创建帐号,但是在WIFI网络下,请求后一直提示网络连接失败。但是切换到流量包后,则会弹出"无线数据"使用数据的弹窗,选择允许后则可顺利进入。…...
数据结构的概念大合集03(栈)
概念大合集03 1、栈1.1 栈的定义和特点1.2 栈的基础操作1.3 栈的顺序存储1.3.1 顺序栈1.3.2 栈空,栈满,进栈,出栈的基本思想1.3.3 共享栈1.3.3.1 共享栈的4要素 1.4 栈的链式存储1.4.1 链栈的实现1.4.2 链栈的4个要素 1、栈 1.1 栈的定义和特…...
C++ 哈希表
目录 两数之和 面试题 01.02. 判定是否互为字符重排 存在重复元素 存在重复元素 II 字母异位词分组 两数之和 1. 两数之和 思路1:两层for循环 思路2:逐步添加哈希表 思路3:一次填完哈希表 如果一次填完,那么相同元素的值&…...
C++之继承详解
一.继承基础知识 继承定义: 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保 持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象 程序设…...
C#装箱和拆箱
一,装箱 装箱是指将值类型转化为引用类型。 代码如下: 装箱的内部过程 当值类型需要被装箱为引用类型时,CLR(Common Language Runtime)会为值类型分配内存,在堆上创建一个新的对象。值类型的数据会被复…...
企业用大模型如何更具「效价比」?百度智能云发布5款大模型新品
服务8万企业用户,累计帮助用户精调1.3万个大模型,帮助用户开发出16万个大模型应用,自2023年12月以来百度智能云千帆大模型平台API日调用量环比增长97%...从一年前国内大模型平台的“开路先锋”到如今的大模型“超级工厂”,百度智能…...
linux 外部GPIO Watchdog驱动适配
前言 文章描述, 利用外部gpio看门狗芯片驱动芯片的复位功能。 芯片:RK3568 平台: Linux ubuntu.lan 4.19.232 #27 SMP Sat Sep 23 13:43:49 CST 2023 aarch64 aarch64 aarch64 GNU/Linux 硬件接线图示 看门狗芯片采用GPIO喂狗,W…...
活动回顾 | 走进华为向深问路,交流数智办公新体验
3月20日下午,“企业数智办公之走进华为”交流活动在华为上海研究所成功举办。此次活动由上海恒驰信息系统有限公司主办,华为云计算技术有限公司和上海利唐信息科技有限公司协办,旨在通过对企业数字差旅和HR数智化解决方案的交流,探…...
【Java】Oracle发布Java22最新版本
甲骨文(ORACLE)已经于2023年3月19日正式发布了最新版本的JDK,版本号:22 根据官方声明,Java 22 (Oracle JDK 22) 在性能、稳定性和安全性方面进行了数千种改进,包括对Java 语言、其API 和性能,以…...
Vue reactive函数的使用
let searchForm reactive({}); let data reactive({ isAdmin: true, isshowAccount: true }); reactive 是什么? reactive 是 Vue 3 Composition API 中的一个函数,用于创建一个包含响应式数据的对象。在 Vue 2.x 中,我们通常使用 data 选项…...
unity自动引用生成
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using UnityEditor; using UnityEngine; using UnityEngine.UI;/// <summary> /// 模板脚本生成 /// </summary> public class ScriptCreater : EditorW…...
【Linux系统】线程互斥与同步
目录 一.几个概念 二.线程互斥 1.定义并初始化锁 2.加锁 3.解锁 4.销毁锁 三.互斥锁的本质 1.xchg的原子性 2.加锁的过程 3.解锁的过程 四.可重入VS线程安全 五.死锁 1.死锁的概念 2.具体实例 3.死锁产生的四个必要条件 4.解决或避免死锁 六.线程同步 七.…...
武汉星起航引领跨境电商新潮流,深耕亚马逊打造全方位合作新模式
在全球化的浪潮下,跨境电商已成为连接各国市场的重要桥梁,为无数企业带来了前所未有的发展机遇。在这一领域,武汉星起航电子商务有限公司以其独特的战略眼光和实战经验,成为引领行业发展的佼佼者。公司自2017年起便深耕亚马逊平台…...
GateWay路由规则
Spring Cloud GateWay 帮我们内置了很多 Predicates功能,实现了各种路由匹配规 则(通过 Header、请求参数等作为条件)匹配到对应的路由 1 时间点后匹配 server:port: 8888 spring:application:name: gateway-servicecloud:nacos:discovery:…...
shell脚本基础改造
一、基础的shell脚本格式 #!/bin/bash 2 #3 #********************************************************************4 #Author: LJH5 #QQ: 2…...
静态综合实验
一,1.搭建拓扑结构并启动。 2.根据题意得该图需要14个网段,根据192.168.1.0/24划分子网段,如下: 划分完如图所示: 二、配置IP地址 R1路由器: 1.进入系统视图并改名. 2.接口配置IP地址:…...
Spring Web MVC入门(6)
应用分层 在开发的过程中, 我们会发现, 程序的代码有时会很"杂乱", 如果后面的项目更大了, 那就会更加地杂乱无章(文件乱, 代码内容乱). 也基于此, 接下来让我们来学习一下应用分层. 也类似于公司的组织架构 公司初创阶段, 一个人身兼数职, 既做财务, 又做人事,还有…...
muduo异步日志
muduo异步日志实现 陈硕老师的muduo网络库的异步日志的实现,今晚有点晚了,我明晚再把这个异步日志抽出来,作为一个独立的日志库。 所在文件 AsyncLogging.cc AsyncLogging.h LogFile.h LogFile.cc CountDownLatch.h CountDownLatch.cc…...
在智慧能源的发展历程中,哪些技术的出现起到了关键性的作用?
智慧能源作为一种全新的能源发展理念,正逐渐成为能源领域的热门话题。在智慧能源的发展历程中,有许多技术的出现起到了关键性的作用,推动了智慧能源的快速发展。 一、物联网技术 物联网技术使得能源设备可以实现互联互通,通过传感…...
SQLiteC/C++接口详细介绍sqlite3_stmt类(十三)
返回:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍sqlite3_stmt类(十二) 下一篇: 待续 51、sqlite3_stmt_scanstatus_reset sqlite3_stmt_scanstatus_reset 函数用于重置指定语句对象最近一次执行的 WHER…...
GB/T28181设备接入WVP平台保姆级教程:从海康到大华的配置避坑指南
GB/T28181设备接入WVP平台实战指南:海康/大华/宇视全品牌配置解析 第一次接触GB/T28181协议时,我盯着设备ID和SIP服务器配置页面发呆了半小时——这些看似简单的字段背后藏着太多细节陷阱。本文将用真实项目经验,带你拆解不同品牌设备在WVP平…...
告别云函数和自建域名:手把手教你用CDN和合法域名搭建CobaltStrike 4.9.1匿名基础设施
红队基础设施匿名化实战:基于CDN与合法域名的CobaltStrike 4.9.1架构设计 在攻防对抗的持续升级中,红队基础设施的隐蔽性与抗溯源能力已成为决定行动成败的关键因素。传统云函数方案虽然降低了部署门槛,但其高度标准化的流量特征和有限的配置…...
实数序列DFT频谱的共轭对称性验证与IDFT重构实战
1. 理解实数序列DFT的共轭对称性 第一次接触信号处理时,我对DFT(离散傅里叶变换)频谱的共轭对称性感到非常困惑。记得当时用Python生成一个简单的正弦波序列,做FFT后发现频谱图左右对称,但具体数值关系却看不懂。后来才…...
凌晨2点OOM告警又来了?——大模型工程化扩缩容的“最后一公里”:如何让Autoscaler读懂LLM的“呼吸节奏”?
第一章:大模型工程化自动化扩缩容策略 2026奇点智能技术大会(https://ml-summit.org) 大模型服务在生产环境中面临显著的负载波动——推理请求可能在秒级内激增数倍,而空闲时段又需快速释放资源以控制成本。自动化扩缩容不再仅是弹性能力的补充项&#…...
3步打造你的云端Windows 12:无需安装,浏览器直接体验
3步打造你的云端Windows 12:无需安装,浏览器直接体验 【免费下载链接】win12 Windows 12 网页版,在线体验 点击下面的链接在线体验 项目地址: https://gitcode.com/gh_mirrors/wi/win12 想要在浏览器中体验最新的Windows系统界面吗&am…...
从卡比到瓦豆鲁迪:用OpenGL层次建模和贴图复刻经典游戏角色的保姆级教程
从卡比到瓦豆鲁迪:用OpenGL层次建模和贴图复刻经典游戏角色的保姆级教程 1. 前言:为什么选择卡比作为OpenGL学习案例 在计算机图形学的学习过程中,3D角色建模一直是令人着迷又颇具挑战性的领域。而《星之卡比》系列中的角色以其简洁的几何造型…...
易语言+Miniblink实战:用HTML5打造炫酷UI界面(附完整代码)
易语言Miniblink实战:用HTML5打造炫酷UI界面(附完整代码) 在传统桌面应用开发中,易语言因其简单易学的特性广受中文开发者喜爱。然而随着用户对界面美观度和交互体验要求的提升,原生支持库的局限性逐渐显现。本文将带你…...
PLDM数据类型全解析:从uint8到timestamp104的实战应用指南
PLDM数据类型全解析:从uint8到timestamp104的实战应用指南 在嵌入式系统和固件开发领域,PLDM(Platform Level Data Model)作为设备管理的关键协议,其数据类型的选择直接影响着系统性能、资源占用和通信效率。本文将深入…...
代码之外周刊(第期):当技术让一切趋同,我们还剩什么?啄
1. 前言 本文详细介绍如何使用 kylin v10 iso 文件构建出 docker image,docker 版本为 20.10.7。 2. 构建 yum 离线源 2.1. 挂载 ISO 文件 mount Kylin-Server-V10-GFB-Release-030-ARM64.iso /media 2.2. 添加离线 repo 文件 在/etc/yum.repos.d/下创建kylin-local…...
动态捕食猎物关系手册:生态可信性构建与玩家长期行为响应策略
在技术领域,我们常常被那些闪耀的、可见的成果所吸引。今天,这个焦点无疑是大语言模型技术。它们的流畅对话、惊人的创造力,让我们得以一窥未来的轮廓。然而,作为在企业一线构建、部署和维护复杂系统的实践者,我们深知…...
