Skip to content

Commit 002b992

Browse files
committed
feat(pwa): 官网 iOS 跳转链接 + PWA 部署 CDN 预热
1 parent 62f98fd commit 002b992

2 files changed

Lines changed: 44 additions & 6 deletions

File tree

‎.github/workflows/mobile-release.yml‎

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,10 @@ jobs:
6262
needs: build
6363
runs-on: ubuntu-latest
6464
timeout-minutes: 15
65+
# secrets 不可用于 if 条件(同 release.yml),先注入 job 级 env 再在 step 用 env.* 引用
66+
env:
67+
DOWNLOAD_BASE_URL: ${{ secrets.DOWNLOAD_BASE_URL }}
68+
HAS_ALIYUN_AK: ${{ secrets.ALIYUN_ACCESS_KEY_ID != '' }}
6569
steps:
6670
- uses: actions/download-artifact@v4
6771
with:
@@ -107,6 +111,36 @@ jobs:
107111
curl -sf https://entropydecrease.com/pwa/ | grep -q "熵减" || exit 1
108112
echo "PWA deployed: ${{ github.ref_name }}"
109113
114+
# ---------------------------------------------------------------
115+
# CDN 预热:PWA 入口与元数据(manifest/sw.js)预热,移动端首开
116+
# 免回源等待(入口文件虽小,CDN 冷缓存回源仍受源站出网带宽限制)。
117+
# 与 release.yml 安装包预热共用同一套阿里云凭证;未配置时跳过。
118+
# ---------------------------------------------------------------
119+
- name: Prefetch CDN cache (PWA)
120+
if: env.DOWNLOAD_BASE_URL != '' && env.HAS_ALIYUN_AK == 'true'
121+
continue-on-error: true
122+
env:
123+
AK_ID: ${{ secrets.ALIYUN_ACCESS_KEY_ID }}
124+
AK_SECRET: ${{ secrets.ALIYUN_ACCESS_KEY_SECRET }}
125+
run: |
126+
set -eo pipefail
127+
if [ ! -x /tmp/aliyun ]; then
128+
curl -sL https://aliyuncli.alicdn.com/aliyun-cli-linux-latest-amd64.tgz -o /tmp/aliyun.tgz
129+
tar -xzf /tmp/aliyun.tgz -C /tmp
130+
fi
131+
/tmp/aliyun configure set --profile cdnci --mode AK --region cn-hangzhou \
132+
--access-key-id "$AK_ID" --access-key-secret "$AK_SECRET"
133+
134+
OBJECTS="https://entropydecrease.com/pwa/"$'\n'"https://entropydecrease.com/pwa/manifest.webmanifest"$'\n'"https://entropydecrease.com/pwa/sw.js"
135+
echo "Prefetching:"
136+
echo "$OBJECTS"
137+
138+
/tmp/aliyun cdn PushObjectCache \
139+
--profile cdnci \
140+
--ObjectPath "$OBJECTS" \
141+
--Area domestic
142+
echo "PWA CDN prefetch done"
143+
110144
# ---------------------------------------------------------------------------
111145
# Android APK(B 方案:TWA 打包):bubblewrap 基于已部署的 PWA manifest
112146
# 生成 TWA 工程并构建签名 APK,上传 GitHub Release + 服务器下载目录

‎website/app/download/page.tsx‎

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -228,16 +228,20 @@ export default function DownloadPage() {
228228
⬇ 下载 Android APK
229229
</a>
230230
</div>
231-
{/* iOS:添加到主屏幕引导 */}
231+
{/* iOS:跳转移动端版 + 添加到主屏幕引导 */}
232232
<div className="rounded-xl p-5" style={{ background: "var(--kb-bg-tertiary)" }}>
233233
<h3 className="font-medium text-kb-text mb-2">iOS</h3>
234-
<p className="text-xs text-kb-text3 mb-3 leading-relaxed">
235-
Safari 打开移动端版,添加到主屏幕,像 App 一样使用
236-
</p>
234+
<a
235+
href="https://entropydecrease.com/pwa/"
236+
className="inline-block w-full text-center px-6 py-3 rounded-xl text-white font-medium transition-all duration-500 hover:scale-[1.02] mb-3"
237+
style={{ background: "linear-gradient(135deg, var(--kb-cyber-cyan), var(--kb-accent-400))" }}
238+
>
239+
打开移动端版 ↗
240+
</a>
237241
<ol className="text-xs text-kb-text2 space-y-1.5 list-decimal list-inside">
238-
<li>Safari 打开 <span className="font-mono">entropydecrease.com/pwa/</span></li>
242+
<li>Safari 中打开移动端版</li>
239243
<li>点「分享」→「添加到主屏幕」</li>
240-
<li>从桌面图标启动</li>
244+
<li>从桌面图标启动,像 App 一样使用</li>
241245
</ol>
242246
</div>
243247
</div>

0 commit comments

Comments
 (0)