- 博客(1592)
- 收藏
- 关注
原创 6元/年英国Giffgaff卡申请和使用
我们来到页面最底部,选择“Pay as you go”这一项,由于我们只是用它来注册账号、接收验证码等,而使用这张卡又必须要往卡里充值,所以我们选择这一种,向卡里充值10英镑即可,不考虑其他套餐。来到填写个人信息的页面,这里不需要真实身份,至于地址,你可以使用地址生成器随机生成一个,或者你也可以在地图上随机找一条街道作为填写进去的地址。(我使用的是真实地址,用的拼音)底部显示了你的用户名,到时你在登录个人中心时,需要用用户名+密码登录,所以别急着关掉这个页面,记一下用户名(使用手机号也可以登录)。
2024-07-09 10:14:19 1557
原创 swiftui中封装一个carditem视图,结合toolbar实现滚动的瀑布流,仿小红书首页
这个组件封装出来的效果如图所示:里面使用到的就是水平布局和垂直布局,还有一个Image组件。
2024-07-08 15:33:52 604
原创 swiftui中NavigationStack布局navigationBarTitleDisplayMode作用,以及内容顶部空白区域解决办法
因为默认是automatic,而且你没有设置navigationBarTitle,所以这个位置就是默认空着,占一个空白区域。那可能就有异味了:我也没有设置navigationBarTitle这个内容啊,为啥就对我的内容布局有影响呢?那这个navigationBarTitleDisplayMode是干什么用的呢?用于设置视图的导航栏标题的显示模式。它的值是一个枚举类型。
2024-07-08 15:33:02 674
原创 swiftui中设置建议最多5个tabItem项,多个tabItem项会被自动折叠起来
在swiftui中设置底部的菜单栏的时候,最多建议设置5个,如果超过了,会被自动折叠到More中,点击More就会出现类似list的样式显示,不是很友好。
2024-07-05 11:17:29 242
原创 豆包Marscode体验官,体验云编程和AI助手加持的快乐
其实早在前不久,我就想着如果有一个在线的代码编辑器该多好啊,毕竟我的电脑内存并不大,芯片并不好,而且还有好多小电影要存储......嗯,这不,它就来了,真的太震撼了,真的是云编辑器,而且还自带Ai助手!这真的让人很难不爱啊豆包 MarsCode IDE 是一个云端 AI IDE 平台。通过内置的 AI 编程助手,开箱即用的开发环境,你可以更专注于各类项目开发。
2024-07-04 18:40:34 555
原创 swiftui中TabView使用,以及Tab使用注意
使用交互式用户界面元素在多个子视图之间切换的视图。也就是手机底部的几个导航菜单一样,但是注意官方给的例子里面有使用Tab组件的,但是这个Tab组件注意:暂时只支持beta版本的系统,低版本是没有的:TabView提供了一个交互式界面,允许用户在其内部的子界面间自由的切换,TabView有两种显示模式,一个是DefaultTabViewStyle,另一个是PageTabViewStyle,本文将对DefaultTabViewStyle这种类型的基本使用和外观样式设置进行一下探索学习。
2024-07-04 18:05:53 1517
原创 NavigationView已经过时了,该用 NavigationStack 和 NavigationSplitView了
在iOS 16及以后,NavigationView将会被弃用,取而代之则是NavigationStack。
2024-07-04 16:37:37 1086
原创 ScrollView组件No exact matches in call to initializer
在scrollview中使用text后报错,水平滚动使用的话,应该里面包含一个水平布局的组件,例如HStack组件,可以设置ScrollView滚动方向为 .horizontal或者 .vertical。
2024-07-04 14:22:29 180
原创 SwiftUI中List的liststyle样式及使用详解添加、移动、删除、自定义滑动
SwiftUI的swipeActions()修饰符允许你添加一个或多个滑动动作按钮到你的列表行,可选地控制他们属于哪一边,以及他们是否应该被触发使用一个完整的滑动。先看下代码及效果图:swipeActions()方法有三个参数,第一个edge决定操作按钮放哪边;第二个allowsFullSwipe决定完全滑动是否自动执行第一个操作,默认值为true;第三个即是内容闭包了。关于样式,只能通过tint设置背景色,如果不设置,系统默认是灰色的。
2024-07-04 11:40:31 1442
原创 swiftui中常用组件picker的使用,以及它的可选样式
一个可选项列表就是一个picker组件搞出来的,它有多个样式可以选择,并且可以传递进去一些可选数据,有点像前端页面里面的seleted组件,但是picker组件的样式可以更多。
2024-07-03 18:26:44 340
原创 mac上使用finder时候,显示隐藏的文件或者文件夹
默认在finder中是不显示隐藏的文件和文件夹的,但是想创建.gitignore文件,并向里面写入内容,即便是打开xcode也是不显示这几个隐藏文件的,那有什么办法呢?
2024-07-02 19:40:55 622
原创 vue3长列表优化,使用vue-virtual-scroller实现直播间弹幕列表虚拟滚动效果
但是需要注意:获取DynamicScroller这个组件的时候,要使用document.getElementById('liveMsg')这种形式,不能使用ref这种,因为ref获取到的并不是一个html元素,没有scrollTop方法,所以无法滚动到底部。这三个组件区别是滚动每一项高度是固定的还是动态的,Recycle就是固定的高度,Dynamic是动态的,动态的话,必须要包含DynamicScrollerItem。
2024-07-02 15:21:39 2274
原创 直播的js代码debug解析找到protobuf消息的定义
我们都知道直播的弹幕消息是通过websocket发送的,而且是通过protobuf传输的,那么这里面传输了哪些内容,这个proto文件又要怎么定义?每个消息叫什么,消息里面又包含有哪些字段,每个字段又是什么类型?都可以通过js查看得到。
2024-07-01 11:07:24 468
原创 protobufjs解析proto消息出错RangeError: index out of range: 2499 + 10 > 2499解决办法
使用websocket通讯传输protobuf消息的时候,decode的时候出错了:出现这种错误的时候,99%是因为proto里面的消息类型和服务端发送的消息类型不一致导致的。
2024-07-01 11:05:42 427
原创 xcode报错Initializer ‘init(_:)‘ requires that ‘Binding<String>‘ conform to ‘StringProtocol‘
这是因为前面使用的$foods是Bind类型,所以后面的food也要是Bind类型,所以就报错了。使用$food进行渲染,就不会报错了。
2024-07-01 11:05:15 195
原创 调试解析直播弹幕消息protobuf内容,一步一步教你debug查看PushFrame和Response解码在哪里
我们知道直播间的弹幕消息是通过websocket传输的,而且传输的并不是明文数据,而是protobuf消息,至于为什么使用这个protobuf消息,因为它是二进制传输,更快更稳,相对于直播这种实时性比较高的要求,使用这种消息传输是非常合适的。
2024-06-29 15:13:09 726
原创 tauri使用github action实现跨平台编译并解决编译错误,mac已损坏,无法打开,你应该将它移到废纸篓解决办法
里面有编译文件可以参考。今天主要讲一下遇到的问题。
2024-06-28 14:07:03 1094
原创 Failed to resolve import “protobufjs/minimal“ from “src/proto/dy.js“. Does the file exist?
但是这是自动生成的啊,怎么办?
2024-06-28 11:55:16 292
原创 github使用action出错Unable to locate executable file: pnpm. Please verify either the file path exists
就是这里报的错,所以需要修改一下:改为下面的格式。
2024-06-28 11:38:42 388
原创 如何使用WxPusher向个人微信推送发送实时消息,比如定时任务等
(微信推送服务)是一个使用微信公众号作为通道的,实时信息推送平台,你可以通过调用API的方式,把信息推送到微信上,无需安装额外的软件,即可做到信息实时通知。你可以使用来做服务器报警通知、抢课通知、抢票通知,信息更新提示等。WxPusher是免费的推送服务,为了能更好的服务大家,这里说明一下系统相关数据限制消息发送,必须合法合规,发送违规违法欺诈等等非正常消息,可能被封号;
2024-06-27 16:32:09 2790
原创 在rust中使用reqwest获取响应里面的cookie,报错borrow of moved value: `response`value borrowed here after move
说的是先move了,然后再borrowed,因为move会转移response的所有权,转移所有权之后,就不能在原实例上租借了,这是rust中的规范。可以看到cookies上面绑定了一个生命周期`a,这个生命周期是和Response绑定的,所以当Response销毁的时候,这个cookie对应的也会销毁。确实是的,我在获取响应内容的时候使用了这个response实例和.text()方法,看一下这个方法里面的内容是啥?那是不是在这个cookie之前有某个地方使用并move了这个response实例?
2024-06-25 10:15:05 425
原创 pyppeteer模块经常使用的功能,相关操作案例
1.打开浏览器调用 launch 方法即可,相关参数介绍:ignoreHTTPSErrors (bool): 是否要忽略 HTTPS 的错误,默认是 False。headless (bool): 是否启用无界面模式,默认为 True。如果 devtools 这个参数是 True 的话,那么该参数就会被设置为 False。executablePath (str): 可执行文件的路径,如果指定之后就不需要使用默认的 Chromium 了,可以指定为已有的 Chrome 或 Chromium。
2024-06-24 22:42:23 1379
原创 Pyppeteer原理介绍和入门尝试
1.Chrome 浏览器和 Chromium 浏览器在 Pyppetter 中,实际上它背后也是有一个类似 Chrome 浏览器的 Chromium 浏览器在执行一些动作进行网页渲染,首先说下 Chrome 浏览器和 Chromium 浏览器的渊源。Chromium 是谷歌为了研发 Chrome 而启动的项目,是完全开源的。
2024-06-24 22:41:37 1278
原创 browerify介绍和简单实用,github的这个作者运用的太妙了
在github闲逛的时候,发现了一个很神奇的项目,这个项目的特点就是实用纯vue和js代码实现了直播间消息的获取,获取的方式就是建立websocket连接,然后接收消息,这没什么特别的,但是特别的地方是什么?
2024-06-24 16:37:04 1035
原创 不常见但很有用的chrome调试工具使用方法
对于chrome调试工具,常用的是elements标签、console标签、sources标签和network标签。但实际上,还有一些不太常见但相当实用的方法可以提高网页调试效率。本文将详细介绍那些不常见的chrome调试工具使用方法。
2024-06-24 16:13:00 521
原创 git检查别人提交的PR(pull requests)并在本地验证,然后合并
如果一个 pull 请求的作者对请求没有响应或者已经删除了它们的 fork,那么该 pull 请求中提出的更改仍然可以通过一个新的 pull 请求进行合并。因为不能将这次pr合并到你本地的已经有作用的分支上了,我那一你那个分支还有用,合并上去之后如果不可用,你的代码还要回滚,多麻烦。换句话说,甚至在合并请求之前,提交请求中的提交在存储库中就是可用的。5.如果本地测试没有问题,就可以在git上点击merge pull request合并到主分支了,或者你也可以单独将你本地新测试的分支推到git上。
2024-06-24 11:55:54 1066
原创 python创建websocket服务器,实现循环发送消息
WebSocket协议是在2008年由Web应用程序设计师和开发人员创建的,目的是为了在Web浏览器和服务器之间提供更高效、更低延迟的双向通信。它允许客户端和服务器在任何时候发送消息,无需重新建立TCP连接。WebSocket可以在Web浏览器和服务器之间传输文本和二进制数据,使得构建实时Web应用程序变得更加简单。
2024-06-24 11:55:11 672
原创 tauri开发软件时报错The `Http` module is not enabled. You must enable one of its APIs in the allowlist.
【代码】tauri开发软件时报错The `Http` module is not enabled. You must enable one of its APIs in the allowlist.
2024-06-22 17:48:16 375
原创 tauri中从前端ts调用rust函数,并异步收到响应结果
命令是在文件中定义的。要创建一个命令,只需添加一个函数,并使用println!");())
2024-06-22 17:16:26 1095 2
原创 创建一个和tauri图标一致的icon和苹果icns图标
我们先看一下tauri的图标的样子,然后看一下tauri程序安装之后的样子,其实这里最困难的就是苹果设备的icon图标怎么搞,因为如果你设置的不合适,就会导致生成的苹果图标在安装后比较显大,有的不太好看。所以这里我们就模仿tauri原本的图标尺寸搞一个大小差不多的图标出来。大小和其他的图标差别不大了。
2024-06-22 14:25:13 265
原创 深入研究websocket直播中signature这个参数怎么来的,模拟自己生成一个
这是一个webmssdk.es5.js包里面的函数,所以需要将这个webmssdk.es5.js包下载到本地,然后集成到window对象上,就可以调用这个函数了,我这里写了一个demo:可以看到已经生成了值。上一节课我们已经找到了生成signature这个字段的代码位置,就是这个B函数,嗯......听起来好像有点奇怪,但是它确实叫B啊,笑死。不管了,看一下里面的逻辑是啥。V()其实会返回一个函数,这个函数可以传递两个参数,有了这两个参数传递过来,那我们就可以安心研究B里面的逻辑了。
2024-06-21 16:16:46 839 6
原创 直播websocket签名signature字段生成逻辑,一步一步带你研究学习
我在这里做了一些注释,方便研究后续逻辑,我们这里看到了,l就是签名signature参数,所以搞出来l就可以了,但是l又依赖s和n,n是websocket_key很明显,那就继续研究s,但是s又依赖于t + a + r + o + ee.VERSION这五个,其中t + r + ee.VERSION = "1.0.14-beta.0"是明显的, 那就需要研究a + o是啥了,a是啥呢?是的,把这里面的逻辑搞清楚不是就可以搞到signature这个签名了嘛,好了,好好研究去吧,同学们,下课。
2024-06-21 11:41:04 650
原创 apple watch上watchOS网络低级别和高级别区别,以及使用tcp/udp或者websocket的限制条件
低层网络:包括网络框架、 NSStream 和任何其他直接运行 TCP 连接或 UDP 会话的 API。3.它允许 watch OS 上的应用程序设置应用程序服务监听器,这样 tvOS 上的同一个应用程序就可以使用 DeviceDisCoveryUI 框架建立到它的低级连接。在 watch OS 9和 tvOS 16中添加了对此的支持。在 watch OS 9中添加了对此的支持。高级网络:包括 URLSession 中的 HTTP 和 HTTPS 支持,以及在此之上的任何代码层。
2024-06-20 16:43:45 638
原创 swift使用websocket通讯,依赖库Starscream集成,并验证apple watch实现websocket可行性
这里使用webscoket,主要是使用了Starscream这个库,看图片就知道很牛X,那么干就完了。
2024-06-20 16:08:13 1331
原创 xcode和iPhone真机或者watch真机连接问题
2.如果真机和xcode处于同一个局域网的话,之前已经连接过的话,默认在xcode中会显示这个真机设备的,直接选中这个设备就可以在设备上运行了:不用连接数据线就可以。设置 > 隐私与安全 > 开发者模式 > 开启,然后重启就可以了。watch设置:很麻烦,看文章。
2024-06-19 20:53:51 916
原创 xcode报错合集,你都遇到过哪些跳不过的坑
1.报错Consecutive declarations on a line must be separated by ';其实我这里是用因为创建了一个结构体,然后在没有使用@State的情况下,修改它的属性了。
2024-06-19 18:47:11 305
phpstudy-x64-V8版本安装包
2023-06-07
可以在浏览器里免费使用chatgpt的插件
2023-05-10
使用Python模块ppadb控制手机拍照
2023-05-08
使用Python的uiautomator2控制手机操作叮咚买菜
2023-05-08
使用Python画一个爱心图片来讨你的女朋友一笑
2023-05-08
Python识别ocr验证码的程序,识别率非常高
2023-05-08
使用Python脚本将 CSV 加载到 SQLite 数据库的脚本(带有类型推测)
2023-05-08
Python写的Grpc小案例Server端
2023-05-05
Python脚本的链式编程思想Demo
2023-04-28
Python脚本Clickhouse连接示例
2023-04-28
安卓Android版zerotier最新安装包
2023-04-28
Python企微定时打卡
2023-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人