avatar
文章
214
标签
21
分类
0
首页
归档
标签
分类
关于
今是昨非的博客iOS webview 接入 HTTPDNS 返回首页
首页
归档
标签
分类
关于

iOS webview 接入 HTTPDNS

发表于2021-12-29|更新于2024-01-22
|浏览量:
文章作者: 今是昨非
文章链接: http://morganwang.cn/2021/12/29/webview%20%E6%8E%A5%E5%85%A5%20HTTPDNS/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 今是昨非的博客!
技术iOS
上一篇
iOS 音频后台播放 && 锁屏显示及控制
播放锁屏通知栏显示背景播放音频时,希望通知界面能显示,且能控制音频播放。由于之前需求是进入后台时播放暂停,所以每次打开通知界面时,播放就暂停,看不到类似于音乐播放器那样的效果。后来发现,去除进入后台暂停代码后,通知界面就可以显示播放器,但是不能控制、且没有进度。 实现支持后台播放首先需要 APP 支持后台播放,即,一方面去除进入后台播放暂停的代码逻辑;另一方面,设置 Target -> Signing & Capabilities 中,添加 Backgroud Modes,打开 Audio, AirPlay, and Picture in Picture。图片如下: 注意设置AVAudioSession,播放前根据实际需要设置,播放后关闭 AVAudioSessionCategory类型 Category类型 当按”静音”或者锁屏时是否静音 是否可以和其他支持混音的 APP 混合播放 是否支持后台 场景举例描述 AVAudioSessionCategoryAmbient 是 是 否 常用于 APP 的背景音,比如玩游戏时还可以听音乐 AVAud...
下一篇
iOS SDK 不支持模拟器解决办法
背景iOS 第三方 SDK 不支持模拟器,报错提示: building for ios simulator, but the linked framework ‘’xxx(比如: IDLFaceSDK.framework)” was built for ios 解决办法.。 解决办法首先,在Target -> BuildSettings -> Excluded Source FileNames -> Debug 中添加一行,注意,key选择 Any iOS Simulator SDK,value 中添加报错中提示的 SDK的目录,示例如下: 然后,在项目中,引用对应 SDK 头文件,以及使用 SDK 方法的地方添加如下代码判断 1234567891011121314#if !(TARGET_IPHONE_SIMULATOR)#import <xxx/xxx.h>#endif#if !(TARGET_IPHONE_SIMULATOR)[xxx share].yyy = xxx;#endif
相关推荐
2023-06-07
如何开发一个 Safari 插件
背景由于常用浏览器是Safari,而 Safari 浏览器的插件比不上 Chrome,所以就有了自己开发常用的 Safari 插件的想法。 打算开发当前页面生成二维码的 Extension,因为网络原因,AirDrop 有时候搜不到手机,所以有了这个需求,而且打算这个也比较简单,所以从这个开始。 调研苹果的官方文档safari_web_extensions给出了步骤,看了好几遍,还是不知道如何下手。虽然新建项目的时候苹果帮忙把框架已经都建好了,但是还是有疑惑,疑惑的点在于: 主APP的作用是什么? Extension的作用是什么? 代码应该写在哪里? manifest.json支持的配置项有哪些,哪里可以看到,应该设置哪些? content.js、background.js分别是干什么用的,什么时候用? popup.html、popup.css、popup.js 又是指的哪部分? content.js、background.js、popup.js中操作 tab 的方法有哪些?哪里可以看到? 这些疑惑一度导致开发计划搁浅,因为没有文章来解释这些问题。于是转而去 Githu...
2024-06-18
提醒描述文件有效期的 Mac APP 开发
背景之前有写过使用Python实现提醒iOS描述文件有效期,这篇文章介绍一下使用SwiftUI通过Mac APP实现提醒描述文件有效期。 实现原理是: 打开描述文件所在的文件夹,遍历读取文件内容,过滤掉后缀不为.mobileprovision的文件,然后读取文件内容(这里不需要再存储为其他格式,因为可以直接读取内容),从文件中读取指定的字段,然后根据ExpirationDate字段判断是否过期。 想要实现的功能: 不同有效期期显示不同颜色——已完成 筛选过期的、临近过期的、正常的描述文件——已完成 添加到期提醒到日历——已完成 筛选同一个 BundleID 重复的描述文件——未完成 一键删除所有过期的描述文件——已完成 代码放在了ScanProfileInfo,感兴趣的下载运行即可。 样式如下:
2021-05-06
iOS APP添加桌面快捷方式
iOS APP添加桌面快捷方式背景新接到一个需求,需要APP内的某些功能,能够把入口添加到桌面,点击桌面到入口可以直接跳转APP对应界面(类似于下面这张示例图),于是就做了一番调研。 其实很多APP目前都已经实现了类似的功能,比如支付宝、云闪付等等,其中的每一个独立功能都可以单独添加到桌面,所以网上有很多实现的方法,笔者做的是整理和试错。 实现首先,添加到桌面功能的操作流程是: 客户端打开APP -> 进入到对应到APP功能模块 -> 点击添加快捷方式到桌面按钮 -> 跳转浏览器,并加载引导页面,点击分享,选择添加到主屏幕 -> 从主屏幕点击刚刚添加到快捷功能,跳转到APP的对应界面。 根据笔者了解到的信息,目前实现这种功能,大致可以分为两种实现方式: 方法一:H5提供网页,每个不同的功能提供不同的网页,服务端返回这些网页的URL,客户端配置打开URL Scheme,然后使用Safari直接加载URL,加载的网页中根据进入方式的不同,自动重定向打开APP的URL Scheme。 方法二:H5提供通用的网页,客户端替换通用网页中的内容,比如...
2021-05-12
iOS mach-o文件分析多余的类和方法
mach-o文件分析多余的类和方法.md背景最近做包大小优化,在做项目代码优化时,其中有一个过程是分析Mach-O文件,看网上很多文章都说通过otool分析Mach-O,获取__objc_classrefs、__objc_classlist等,然后找出无用类和无用方法。 比如:无用类通过 otool 逆向Mach-O文件 __DATA.__objc_classlist段和__DATA.__objc_classrefs 段获取所有 OC 类和被引用的类,两个集合差值为无用类集合,结合 nm -nm 得到地址和对应类名符号化无用类类名来自干货!京东商城iOS App瘦身实践 又或者结合LinkMap文件的__TEXT.__text,通过正则表达式([+|-][.+\s(.+)]),我们可以提取当前可执行文件里所有objc类方法和实例方法(SelectorsAll)。再使用otool命令otool -v -s __DATA __objc_selrefs逆向__DATA.__objc_selrefs段,提取可执行文件里引用到的方法名(UsedSelectorsAll),我们可以大致分...
2021-05-27
正经分析iOS包大小优化
本文发表在《搜狐技术产品》公众号正经分析iOS包大小优化 iOS 包大小分析优化背景包大小优化是项目开发中不可避免会遇到的,网上关于包大小优化的文章很多,每篇文章说的都不尽相同,笔者曾经根据网上的文章做过包大小优化,但效果不尽人意;因此笔者想根据已有的文章、知识结合自己的理解、实践,做一份总结梳理,整理自己的包大小优化逻辑,不光要知道怎么做可以让包大小变化,还要知道为什么这么做能产生效果,所以就有了这篇文章。 分析想要优化安装包大小,首先需要弄清楚影响安装包大小的因素有哪些?之前笔者优化包大小直接闷着头就去瘦身,瘦来瘦去也没瘦出个名堂,而且还跟别人说不清楚自己做了什么,为什么这么做? 后来总结出来,做事之前要先思考、分析、最后再去做,要思考的是影响这件事的因素有哪些,一一列举出来,查漏补缺;然后针对这些因素进行分析,分析哪些因素是人为可控的,哪些因素是不能改变的,针对可控的部分要怎么优化,不可控的部分是否能避免,最好可以使用思维导图工具,一一记录;然后按照思维导图的整理出来的数据,按步骤去执行。 回过头来,针对安装包大小,首先分析影响安装包大小的因素,有:Xcode的设置、资...
2021-08-02
iOS 启动时间优化
iOS 启动时间优化——相关背景iOS的启动时间优化有很多相关的文章,本来不打算写,但是总归是自己整理一遍印象更深刻。这里打算从原理-实践-面试相关三个方面来入手。首先要理解APP启动的原理,启动做了什么?然后针对启动过程中的事件哪些是开发可以进行优化的,去实践?最后则是,面试相关,与启动优化相关的面试有很多,笔者打算列举一下,分别涉及到启动的哪些问题。 启动原理启动分为冷启动和热启动。冷启动指的是APP进程被杀掉后,从零打开;热启动指的是,APP进入后台,再切换到前台唤起到过程。这里通常说的启动优化,指的是冷启动优化。(Ps: 这里某些版本会出现,刚杀掉的APP,立即再次打开,会直接闪退的问题,是系统的Bug)。 冷启动的过程分为main函数之前(pre-main)和main函数之后两个阶段。 pre-main阶段就如很多文章说的: pre-main阶段的过程分为dylibs loading ——> rebase/binding ——> ObjC setup ——> initializer四个部分。每个部分吧啦吧啦…但每次问到这个时候,死记硬背出来真的累人...
avatar
今是昨非
技术分享、生活感悟
文章
214
标签
21
分类
0
Follow Me
公告
This is my Blog
最新文章
WorkBuddy做什么2026-07-24
Mac 上 实现WorkBuddy浏览器自动化2026-07-20
AI 辅助 iOS 开发防坑指南:在 Objective-C 老项目中打造“不漏网”的研发工作流2026-07-20
用了 AI 还在重复踩坑?该升级的不是提示词,是你的认知2026-07-20
使用WorkBuddy实现股票分析小助手2026-06-12
© 2026 By 今是昨非框架 Hexo 5.4.0|主题 Butterfly 5.5.3
日出江花红胜火,春来江水绿如蓝,能不忆江南