avatar
文章
204
标签
17
分类
0
首页
归档
标签
分类
关于
今是昨非的博客
首页
归档
标签
分类
关于

今是昨非的博客

如何开发一个 Safari 插件
发表于2023-06-07
背景由于常用浏览器是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...
iOS16.4 Webview 不能用Safari调试
发表于2023-04-14
背景Xcode 升级到 14.3后,模拟器是iOS 16.4 的,想通过Safari -> Developer -> Web Inspector查看,结果发现查看不了 修改一开始以为是设置 Safari 中 Advanced没开启,去查看后,发现开关已开启。 搜索后发现,从 iOS16.4 之后,如果想要通过Web Inspector查看,需要设置如下代码: 12345if #available(iOS 16.4, *) { webView.isInspectable = true} else { // Fallback on earlier versions} 设置之后,重新运行,再通过 Safari 查看,就可以看到了。 参考 Mark the webview as inspectable in iOS 16.4
Xcode 创建项目默认文案修改
发表于2023-04-06
背景最近需要修改Xcode创建项目默认文案修改,就是每次创建最上面默认生成的注释说明。想起来之前看原Raywenderlich(现在是Kodeco)网站下载的代码时,每个已存在的文件里都有一长串自定义的说明,而且新建文件的时候也是带有同样的自定义的说明,有过疑惑,但是没有仔细研究,今天研究下怎么实现的: Kodeco文件自定义的说明如下: 实现通过Customize text macros和Text macros reference 可以看出,Xcode默认头部文字注释默认定义如下: 12345678// ___FILENAME___// ___PACKAGENAME___//// Created by ___FULLUSERNAME___ on ___DATE___.// ___COPYRIGHT___// 然后参考Customizing the file header comment and other text macros in Xcode 9 可以确定修改的步骤是: 创建IDETemplateMacros.plist 添加或修改Root对应的type为...
Xcode 14.3 Archive 失败
发表于2023-03-31
背景由于手机升级了iOS 16.4,想要真机调试,Xcode 也要升级到 14.3, 于是就升级了一下。 升级Xcode 14.3之前,Debug 和 Archive 都没问题;升级 Xcode 14.3之后,Debug 没问题,Archive 就报错。错误信息如下: 123456789building file list ... rsync: link_stat "/Users/xxx/.../AFNetworking.framework" failed: No such file or directory (2)donesent 29 bytes received 20 bytes 98.00 bytes/sectotal size is 0 speedup is 0.00rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/9e200cfa-7d96-11ed-886f-a23c4f261b56/Librar...
导出iPhone所有短信到Excel
发表于2023-03-27
导出iPhone所有短信到Excel打算找一些短信,用于作为样本训练识别。 一开始打算网上找到垃圾短信样本,但找了好久没找到,于是就想到用自己和家人手机里的短信,毕竟手机里短信一般不删除,也有小几千条,而且垃圾短信、推销、广告之类的应有尽有。 所以问题就变成了,如何导出 iPhone 短信? 这里笔者也查了好久,找到的第三方软件基本都是需要收费,最终发现了一个免费导出的方案。 首先不加密备份手机到电脑,如下图,选中Back up all the data on your iPhone to this Mac,点击Back Up Now,等待备份完成,备份完成后,再点击Manage Backups Manage Backups点击后,界面如下,可以看到已备份的记录,右键选择Show In Finder,在文件夹中打开 然后可以看到备份所在目录已打开,这时候需要找到文件名为3d0d7e5fb2ce288813306e4d4636395e047a3d28的文件,这个文件就是短信备份的数据库文件。然后问题来了,怎么找呢?看到备份目录一个个文件夹是不是懵,这怎么找,很简单,搜索,点...
Safari中使用NewBing
发表于2023-03-23
NewBing 的权限已经有了,但是想在 Safari 中使用 NewBing,因为不想日常开三个浏览器,Safari、Chrome、Edge,电脑内存不允许。。。 首先说步骤: Safari 安装 Microsoft Bing for Safari插件,并登录,能使用NewBing的账号 修改 Safari 的 UserAgent 为 Edge 的 UserAgent 修改默认搜索引擎为Bing 第一步很简单,就打开商店搜索安装即可,安装完成后,打开 bing并登录有NewBing权限的账号; 麻烦的是第二步,网上搜索到大部分是,打开Safari -> Develop -> User Agent -> Microsoft Edge,如下图: 但是这种方法只能在当前Tab页生效,打开新的页面后,就失败了,每个新 Tab 都单独设置一次,想想就不可能。所以有没有一种可以永久设置Safari的 UserAgent的方法? 当然有了,设置方法如下,设置之后,每次打开新的页面,UserAgent也会一直保持; 永久设置 Safari 的 UserAgent 1d...
iOS推送播放语音播报更新
发表于2023-03-22
iOS推送播放语音播报更新接上篇如何让iOS推送播放语音,之前的结论是iOS如果需要送审商店只能播放本地的mp3文件,这里更新一下: 更新语音的播放,最终调用的方法是UNNotificationSound(named: xxx),而这个方法官方文档注释如下: 12// The sound file to be played for the notification. The sound must be in the Library/Sounds folder of the app's data container or the Library/Sounds folder of an app group data container. If the file is not found in a container, the system will look in the app's bundle. public convenience init(named name: UNNotificationSoundName) 注释里说,语音文件会从这三个地方...
玩转OpenAI和ChatGpt
发表于2023-03-02
背景之前在其他平台就看到有大佬分享自己的ChatGPT的使用, 比如: 自力hzlzh, 但一直也没弄. 昨天突然看到 OpenAI 在商店有很多应用, 下载了一个发现里面接口都是失败的, 但是界面和方向感觉很有意思, 打算自己做一个自用的. 注册 OpenAI注册过程参考超详细注册OpenAI接口账号的教程, 很详细, 按照步骤一步步来即可, 要注意的国内的手机号收不到验证码, 所以需要国外的手机号或者通过接码平台(需付费), 验证码的接收我选用的US的手机号, 花费了 7.1元, 一次就成功了. 简单的说: 首先要能打开openAI的注册页面, 然后注册, 到接收验证码界面 如果有国外的手机号, 直接输入, 接收验证码; 如果没有, 再去注册一个接码平台, 选择语言为中文, 然后就都能看懂了, 然后充值 1 美元, 可以用支付宝支付, 然后搜索openai的接码, 选择一个, 耐心等待, 收到分配的号码之后 再去openAI的验证码界面, 输入分配的号码, 发送验证码, 然后等待, 在接码平台就会显示收到的验证码, 输入就可以注册成功. 如何使用OpenAI注册完...
CABasicAnimation进入二级界面再回来不生效
发表于2023-02-22
背景发现之前同事写的某个界面有个动效, 起初进入的时候是生效的, 进入二级界面再返回动效就没了, 动画用的是CABasicAnimation, 添加在 layer 上面. 解决看代码没有问题, 毕竟第一次就生效了, 以为是在页面消失时做了什么操作, 查了之后发现, 页面消失时并没有操作. 再回过来看代码, 代码动画部分是在didMoveToWindow中实现的, 大致如下: didMoveToWindow方法在页面消失和出现的时候都会调用, 难道是添加多次导致不生效了, 改成只添加一次之后发现效果一样, 进入二级页面再返回就不生效了. 1234567891011override func didMoveToWindow() { layer.addSublayer(gradientLayer) let basicAnim = CABasicAnimation(keyPath: "animateLocation") basicAnim.fromValue = [xxx] basicAnim.toValue = [xx...
base64加密出现的问题
发表于2023-02-15
背景项目中仿QQ闪照功能, 图片的发送逻辑是, 先转base64, 然后加密, 最后加密后的字符串作为文件发送; 在处理接收的时候, 按照先下载文件, 然后读取文件内容, 再解密, 然后按照 base64 字符串的方式生成图片, 却一直失败. 解决方法起初以为是, 加解密的问题, 仔细排查后, 排除了这个假设. 最后把解密后的字符串拷贝到VSCode中仔细观察发现, 其中多了很多\r\n. 搜索后发现, 是base64加密的问题, 由于base64一行不能超过76字符, 超过就会添加回车换行符(在 Windows中是\r\n, 在Linux中是\n). 而解析后其中的回车和换行就是错误信息, 所以解决方法是, 把\r\n替换为空字符串, 然后再去生成图片, 就正常了. 参考 base64加密出现的\r\n换行问题
1…678…21
avatar
今是昨非
技术分享、生活感悟
文章
204
标签
17
分类
0
Follow Me
公告
This is my Blog
最新文章
CodeBuddy Models Manager:用可视化界面管理 CodeBuddy 自定义模型2026-04-17
UnifySkillManager 一个统一的 AI 编程工具 Skill / Rule Manager2026-04-17
AI 开发的感悟2026-03-13
关于 AI 的一些很有意思的想法2026-03-06
拒绝 Stash 混乱:Git Worktree 助你开启“多线程”开发神技2026-03-06
标签
标签1 iOS iOS自动打包 iOS蓝牙 技术 随笔 ideas 标签2 Algorithem movies ReactNative 分享 books 算法 Flutter 生活 learning
归档
  • 四月 2026 2
  • 三月 2026 5
  • 二月 2026 3
  • 一月 2026 8
  • 十月 2025 1
  • 九月 2025 4
  • 八月 2025 4
  • 十二月 2024 1
网站信息
文章数目 :
204
本站访客数 :
本站总浏览量 :
最后更新时间 :
© 2026 By 今是昨非框架 Hexo 5.4.0|主题 Butterfly 5.5.3
日出江花红胜火,春来江水绿如蓝,能不忆江南