diff --git a/app/src/config/account.ts b/app/src/config/account.ts index ece1f94da..b6c14eae5 100644 --- a/app/src/config/account.ts +++ b/app/src/config/account.ts @@ -5,12 +5,13 @@ import {fetchPost} from "../util/fetch"; import {repos} from "./repos"; import {confirmDialog} from "../dialog/confirmDialog"; import {hasClosestByClassName} from "../protyle/util/hasClosest"; -import {getEventName, isIPad} from "../protyle/util/compatibility"; +import {getEventName, isInIOS} from "../protyle/util/compatibility"; import {processSync} from "../dialog/processSystem"; import {needSubscribe} from "../util/needSubscribe"; import {syncGuide} from "../sync/syncGuide"; import {hideElements} from "../protyle/ui/hideElements"; import {getCloudURL, getIndexURL} from "./util/about"; +import {genUUID} from "../util/genID"; const genSVGBG = () => { let html = ""; @@ -29,11 +30,29 @@ const genSVGBG = () => { export const account = { element: undefined as Element, genHTML: (onlyPayHTML = false) => { - const hideIPad = isIPad() ? " fn__none" : ""; - const payHTML = ` + const isIOS = isInIOS(); + let payHTML + if (isIOS) { + // 已付费 + if (window.siyuan.user?.userSiYuanOneTimePayStatus === 1) { + payHTML = `` + } else { + payHTML = ` +
+` + } + } else { + payHTML = `
${window.siyuan.languages[window.siyuan.user?.userSiYuanOneTimePayStatus === 1 ? "account4" : "account1"]} - -
+` + } + payHTML += `
${window.siyuan.languages.freeSub} @@ -87,7 +106,7 @@ ${genSVGBG()} ${window.siyuan.languages.account6} ${Math.max(0, Math.floor((window.siyuan.user.userSiYuanProExpireTime - new Date().getTime()) / 1000 / 60 / 60 / 24))} ${window.siyuan.languages.day} - ${window.siyuan.languages.clickMeToRenew} + ${isIOS ? `${window.siyuan.languages.clickMeToRenew}` : `${window.siyuan.languages.clickMeToRenew}`} `; if (window.siyuan.user.userSiYuanOneTimePayStatus === 1) { subscriptionHTML = `
${window.siyuan.languages.onepay}
@@ -122,8 +141,8 @@ ${renewHTML}
- ${window.siyuan.languages.manage} - + ${window.siyuan.languages.manage} + @@ -219,6 +238,35 @@ ${renewHTML}
`; }, bindEvent: (element: Element) => { + element.querySelectorAll('[data-action="iOSPay"]').forEach(item => { + item.addEventListener("click", () => { + if (window.siyuan.user) { + fetchPost("/api/setting/getCloudUser", { + token: window.siyuan.user.userToken, + }, response => { + if (window.siyuan.user.userSiYuanOneTimePayStatus !== response.data.userSiYuanOneTimePayStatus || + window.siyuan.user.userSiYuanProExpireTime !== response.data.userSiYuanProExpireTime || + window.siyuan.user.userSiYuanSubscriptionPlan !== response.data.userSiYuanSubscriptionPlan || + window.siyuan.user.userSiYuanSubscriptionType !== response.data.userSiYuanSubscriptionType || + window.siyuan.user.userSiYuanSubscriptionStatus !== response.data.userSiYuanSubscriptionStatus) { + showMessage(window.siyuan.languages["_kernel"][19]); + return; + } + window.siyuan.user = response.data; + const productType = item.getAttribute("data-type") + let productID + if (window.siyuan.config.cloudRegion === 0) { + productID = productType === "function" ? "0" : "1" + } else { + productID = productType === "function" ? "2" : "3" + } + window.webkit.messageHandlers.purchase.postMessage(`${productID} ${genUUID().substring(0, 19)}${window.siyuan.config.cloudRegion}00${window.siyuan.user.userId.substring(0, 1)}-${window.siyuan.user.userId.substring(1)}`); + }); + } else { + showMessage(window.siyuan.languages.needLogin); + } + }); + }); const trialSubElement = element.querySelector("#trialSub"); if (trialSubElement) { trialSubElement.addEventListener("click", () => { diff --git a/app/src/mobile/settings/account.ts b/app/src/mobile/settings/account.ts index a520c5199..ebd3a92b3 100644 --- a/app/src/mobile/settings/account.ts +++ b/app/src/mobile/settings/account.ts @@ -41,7 +41,7 @@ export const showAccountInfo = () => { ${window.siyuan.languages.freeSub}
- + ${window.siyuan.languages.sponsor} `;