Shopify獨立站 WebPush SDK 接入指南
概述
本文檔介紹如何在基於 Shopify 搭建的獨立站中整合 WebPush SDK,實現瀏覽器推送功能。
前提條件
- Shopify 店鋪管理員權限
- 已取得 WebPush SDK 檔案(webSdk.produce.min.3.3.4.js、sw.produce.min.3.3.4.js)
- 了解 Shopify 主題編輯的基本操作
接入步驟
透過 Shopify 主題編輯器新增(推薦)
1. 上傳 SDK 檔案到 Shopify
- 登入 Shopify 後台
- 進入「線上商店」>「主題」
- 點擊目前使用主題的「操作」按鈕,選擇「編輯程式碼」
- 在「Assets」資料夾中,點擊「新增資源」
- 上傳
webSdk.produce.min.3.3.4.js(主 SDK 檔案) - 上傳
sw.produce.min.3.3.4.js(Service Worker 檔案,SDK 依賴此檔案實現推送功能) - 上傳後,記下檔案的 URL(格式如:
{{ 'webSdk.produce.min.3.3.4.js' | asset_url }}和{{ 'sw.produce.min.3.3.4.js' | asset_url }})
重要提示:
sw.produce.min.3.3.4.js是 Service Worker 檔案,用於在背景處理推送訊息。SDK 初始化時必須正確設定此檔案的路徑。
2. 新增 SDK 引用,初始化 SDK
- 在主題編輯器中,找到並開啟
theme.liquid檔案 - 在
</head>標籤前新增以下程式碼:
<script>
// 初始化SDK
(function() {
function initializeSDK() {
const visitorId = getFingerprint();
if (typeof window.MTpushInterface !== 'undefined') {
MTpushInterface.mtPush.onDisconnect(function () {
console.log("onDisconnect");
});
MTpushInterface.onMsgReceive((msgData) => {
console.log("得到推送訊息:", msgData);
});
MTpushInterface.init({
appkey: "", // 必填
user_str: visitorId, // 必填,用戶識別符
fail(err) {
console.log("線上推送建立失敗", err);
},
success(data) {
console.log("線上推送建立成功", data);
},
webPushcallback(code, tip) {
console.log("用戶得到的狀態碼及提示", code, tip);
},
swUrl: '{{ "sw.produce.min.3.3.4.js" | asset_url }}',
});
}
}
window.MTpushInterfaceReady = initializeSDK;
})();
</script>
{{ 'webSdk.produce.min.3.3.4.js' | asset_url | script_tag }}
<script>
// 初始化SDK
(function() {
function initializeSDK() {
const visitorId = getFingerprint();
if (typeof window.MTpushInterface !== 'undefined') {
MTpushInterface.mtPush.onDisconnect(function () {
console.log("onDisconnect");
});
MTpushInterface.onMsgReceive((msgData) => {
console.log("得到推送訊息:", msgData);
});
MTpushInterface.init({
appkey: "", // 必填
user_str: visitorId, // 必填,用戶識別符
fail(err) {
console.log("線上推送建立失敗", err);
},
success(data) {
console.log("線上推送建立成功", data);
},
webPushcallback(code, tip) {
console.log("用戶得到的狀態碼及提示", code, tip);
},
swUrl: '{{ "sw.produce.min.3.3.4.js" | asset_url }}',
});
}
}
window.MTpushInterfaceReady = initializeSDK;
})();
</script>
{{ 'webSdk.produce.min.3.3.4.js' | asset_url | script_tag }}
此代碼塊在浮窗中顯示
驗證安裝
1. 檢查 SDK 是否載入
- 開啟網站頁面
- 右鍵點擊,選擇「檢查」或按 F12
- 在 Console(主控台)中檢查是否有 SDK 相關的載入資訊
- 輸入
window.MTpushInterface查看是否已定義
2. 測試功能
- 確保網站已透過 HTTPS 存取(Web 推送要求 HTTPS)
- 檢查瀏覽器是否顯示推送權限請求(若已設定自動請求)
3. 檢查 Service Worker 註冊
- 開啟瀏覽器開發者工具(F12)
- 切換到「Application」(應用程式)標籤
- 在左側選單中找到「Service Workers」
- 確認
sw.produce.min.3.3.4.js已成功註冊 - 若顯示錯誤,檢查主控台中的錯誤資訊
故障排除
常見問題及解決方案
Q1: SDK 未載入
- 檢查檔案路徑:確認 asset_url 是否正確產生
- 查看網路面板:檢查 JS 檔案是否成功下載
- 檔案權限:確保檔案在 Shopify Assets 中可存取
Q2: 初始化失敗
- 載入順序:確保 SDK 在初始化程式碼前已載入
- HTTPS 要求:Web 推送必須在 HTTPS 環境下工作
- 瀏覽器相容性:檢查瀏覽器是否支援 Web 推送
- Service Worker 設定:確保
swUrl參數已正確設定,且 Service Worker 檔案路徑可存取 - Service Worker 檔案:檢查
sw.produce.min.3.3.4.js是否已上傳到 Assets 資料夾
Q4: Service Worker 註冊失敗
- 檔案路徑:確認
swUrl設定的路徑是否正確,使用{{ 'sw.produce.min.3.3.4.js' | asset_url }}確保路徑正確 - 檔案存取:在瀏覽器中直接存取 Service Worker 檔案 URL,確認檔案可正常下載
- 主控台檢查:在瀏覽器主控台的 Application > Service Workers 中查看註冊狀態
- HTTPS 要求:Service Worker 必須在 HTTPS 環境下才能註冊(localhost 除外)
