开发者免费资源汇总
一个神奇的网站,免费资源集合汇总:
https://free-for.dev
一个神奇的网站,免费资源集合汇总:
https://free-for.dev
网上看到的方法,收集一下。
所谓别名就是同一个邮箱,但是地址形式可以多种,以方便多注册……
比如 [email protected] 这个邮箱:
第一种方式:加点
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
[email protected]
这样全是别名
第二种: +后面随便加
[email protected]
[email protected]
[email protected]
这样随便加都是别名,说添加+的有些网站不识别,具体可以自己测试
第三种:大小写
[email protected]
[email protected]
[email protected]
这样也算是别名
理论上面三种方式可以生成无限个邮箱出来
所有邮件接受到[email protected] 这个邮箱
frps作为服务端,需要在Windows服务器上实现服务后台运行,借助winsw工具快速搞定,记录如下:
WinSW-x64.exe
填写服务配置文件
配置文件名:WinSW-x64.xml
,注意取名跟所下载的应用程序名WinSW-x64.exe
相同,并放入同一目录下。
<service>
<!-- 该服务的唯一标识 -->
<id>frps</id>
<!-- 该服务的名称 -->
<name>frp-server</name>
<!-- 该服务的描述 -->
<description>frp服务器</description>
<!-- 要运行的程序路径 -->
<executable>C:\bug\frp\frps.exe</executable>
<!-- 携带的参数 -->
<startargument>-c</startargument>
<startargument>C:\bug\frp\frps.toml</startargument>
<!-- 第一次启动失败 60秒重启 -->
<onfailure action="restart" delay="60 sec"/>
<!-- 第二次启动失败 120秒后重启 -->
<onfailure action="restart" delay="120 sec"/>
<!-- 日志模式 -->
<logmode>append</logmode>
<!-- 指定日志文件目录(相对于executable配置的路径) -->
<logpath>logs</logpath>
</service>
安装并启动服务
以管理员权限运行cmd:
WinSW-x64.exe install
WinSW-x64.exe start
Nginx 只允许Cloudflare CDN IP访问
server {
listen 80;
server_name your_domain.com;
# 允许 Cloudflare 的 IP 地址访问
# 定义允许的 IPv4 地址范围
allow 173.245.48.0/20;
allow 103.21.244.0/22;
allow 103.22.200.0/22;
allow 103.31.4.0/22;
allow 141.101.64.0/18;
allow 108.162.192.0/18;
allow 190.93.240.0/20;
allow 188.114.96.0/20;
allow 197.234.240.0/22;
allow 198.41.128.0/17;
allow 162.158.0.0/15;
allow 104.16.0.0/13;
allow 104.24.0.0/14;
allow 172.64.0.0/13;
allow 131.0.72.0/22;
# 定义允许的 IPv6 地址范围
allow 2400:cb00::/32;
allow 2606:4700::/32;
allow 2803:f800::/32;
allow 2405:b500::/32;
allow 2405:8100::/32;
allow 2a06:98c0::/29;
allow 2c0f:f248::/32;
# 禁止其他 IP 地址访问
deny all;
# 此处添加其他 Nginx 配置,如 location 等
}
现有一个简单的需求,需要用户弹窗选择一个铃音,要求在正式的确认之前就能播放对应的音乐作预听,微信小程序picker(mode = selector)可以实现选择确认功能,但只有点击确认后的bindchange
事件,没有选择变化事件。根据微信文档,在mode = multiSelector
时,有多了一个bindcolumnchange
事件,灵光一闪,只有一列的multiSelector不就是selector?那不就可以把multiSelector当selector用?
wxml:
<view class="option">铃声:
<picker mode="multiSelector" range="{{[ringtones]}}" data-alarmid="{{item.id}}" bindcolumnchange="bindRingtoneSelect" bindchange="bindRingtoneChange">
<view class="picker">{{ringtones[item.ringtoneIndex]}} <text class="picker-selector"> ❯</text> </view>
</picker>
</view>
特别注意其中:ringtones一维数组,调整为:[ringtones]引用。
js:
bindRingtoneSelect: function(e) {
proto.sendPlayMusic(e.detail.value);
},
bindRingtoneChange:function(e) {
proto.sendSaveMusic(e.detail.value);
},
实验效果完美解决~~