操作走商店上架还是遇到了些问题,网页提示是不准确的,因此这里记录下操作过程。

商店开发者平台地址,点击这里

  1. 支付5美元注册费用,成为拓展程序开发者
    • 需要visa卡
    • 地区不支持中国大陆,选择香港,填写fake地址即可
  2. 点击上传新内容,按照要求填写即可
    • 上传文件类别为zip

官方说法几个工作日,因为当前疫情,还是慢了点,我的应用审核花费3天,但有时1天就好,具体看运气。

准备材料

阅读全文 »

ChatGPT最近出圈,尝试了下,个人很喜欢,目前已纳入日常使用工具。

这里Mark下使用姿势。

前置条件

  • 科学上网

    建议先解决这个再往下走,实测香港节点在注册登录环节存在问题,因此推荐日本/美国等其它节点,我个人会配置固定节点如美国代理访问

阅读全文 »

最近在处理文件上传时需要知道用户是否点击了取消,为此查了下可行性,这里总结下

1
<input type="file"/>

JS并不支持

首先官方没提供方案,即如果用户唤起文件选择弹窗,然后点击取消,JS是没有暴露事件告诉我们取消的,因此这里需要HACK解决下。当然如果可以接受再加一层弹窗也可以,即用户主观自己点击了下我们提供的取消按钮。

HACK方案

阅读全文 »

最近WebShell支持右键下载,这里总结下实现过程。

说明

  1. 使用技术栈

技术实现

  1. 文本选中

    • xterm.js支持双击选中部分文本,匹配模式为word,因此如果如果文件夹名称是hello world,那只能自己再拖拽选择了。
    • shell中无法具体直接识别字符是不是文件,文件夹还是PS1这类的提示符,通过Shell配置只是可以控制颜色,但是反向根据颜色来判断是否是文件夹这是没用的,毕竟主题不同,颜色值也会不同。
  2. 文件所在目录即Current Working Directory

    • 这个需要Shell integration来解决,本质就是函数钩子,在每次执行一条命令结束时获取当前所在目录并发送消息出来。同时目录信息存储在隐藏字符中避免显示到终端上,程序中我们持续提取当前目录即可。

      1
      2
      3
      4
      source /usr/local/bash-precmd/bash-preexec.sh
      preexec() { printf "\x1B]1337;PreExec;Timestamp=$(date +%s);\x7"; }

      precmd() { printf "\x1B]1337;PostExec;Exit=$?;CurrentDir=$(pwd);Timestamp=$(date +%s);\x7"; }
    • 有了目录,同时支持选中文件,最基础的执行下载就OK了。

  3. 目录历史

    • 如果说用户选中最新一行的文件那没问题,但是终端下,每一行信息所在的目录是不同的,因此CWD要持续记录
    • 记录的标准并不应该按照xterm显示终端的行号进行一对一,因为比如一个ls命令显示文件列表,可能会具体显示为2行,因此最佳的方式是CWD针对这次写入终端信息所在的N行对齐即可
  4. 获取文件信息

    • 选中文本并不能保证一定是个文件,因此我们还需要根据选中文本能够识别出文件类型/大小/权限等等。ssh2-sftp-client下有stat方法可以支持

    • stat方法返回的mode值是二进制,比如33279,需要转化后才可以具体指导rwx权限

      1
      (rslt.mode& parseInt('777', 8)).toString(8)
    • 针对软链接类型文件,list接口返回的类型为l,但是stat方法返回的isSymbolicLink却是false,这种情况两者不一致,目前还没有解决办法。

  5. 文件下载

    • 在明确了可以下载的前提下,执行下载方法就很多了。ssh2-sftp-client下提供的get,或者fastGet均可实现下载,如果是终端连接的ssh会话也可以走sz下载均可。
    • 空文件下载以上方法均支持,只是注意针对get的流方法,该流的onData数据不会被触发,但end方法可以正常执行。
阅读全文 »

最近家人也换了iPhone,进入苹果生态,这里研究下家人共享,试图用该方式让家人免费+便捷的用上我使用多年的苹果生态服务。

官方文档对于家人共享说的含糊不清,因此踩了坑。这里总结下,整体来说家人共享还是挺香的,推荐那些自己买了一大堆苹果生态服务的用户,通过家人共享可以在不再二次开销的基础上让他人也用上部分优秀服务。OK,开始。

https://static.1991421.cn/2022/2022-11-05-220803.jpeg

家人共享

该功能可以这么理解,家人共享类似于平常开通的YouTube家庭会员/Spotify家庭会员。家人共享服务涵盖多种

  1. iCloud,AppleMusic,Apple TV等订阅服务

    • 一般Apple会员拼车即采用的该方式,比如iCloud空间,发起人并不能直接通过配置来限制每个人可用大小,整个空间大小是共享的
  2. AppStore购买App[不包含内购服务]

    • 内购不支持,比如MarginNote本身App免费下载,但是Pro功能是内购的,那么家人共享并不会共享Pro服务,家人还需要单独购买。但比如Things本身付费购买,这种就可以。
  3. 位置信息等,其它请以官网为主

  4. 家人共享是按账户共享,iPhone/Mac均会加入

    阅读全文 »
0%