Vanessa 2025-03-19 19:44:17 +08:00
parent 1cd7febe63
commit 4d6c9ea446
6 changed files with 39 additions and 58 deletions

View File

@ -11,7 +11,7 @@ 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";
import {iOSPurchase} from "../util/iOSPurchase";
const genSVGBG = () => {
let html = "";
@ -240,31 +240,7 @@ ${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);
}
iOSPurchase(item.getAttribute("data-type"));
});
});
const trialSubElement = element.querySelector("#trialSub");

View File

@ -31,7 +31,7 @@ import {hideAllElements} from "./protyle/ui/hideElements";
import {loadPlugins, reloadPlugin} from "./plugin/loader";
import "./assets/scss/base.scss";
import {reloadEmoji} from "./emoji";
import {IOSPurchase} from "./util/iOSPurchase";
import {processIOSPurchaseResponse} from "./util/iOSPurchase";
export class App {
public plugins: import("./plugin").Plugin[] = [];
@ -209,5 +209,5 @@ window.openFileByURL = (openURL) => {
window.showKeyboardToolbar = () => {
// 防止 Pad 端报错
};
window.IOSPurchase = IOSPurchase;
window.processIOSPurchaseResponse = processIOSPurchaseResponse;
/// #endif

View File

@ -28,7 +28,7 @@ import {isNotEditBlock} from "../protyle/wysiwyg/getBlock";
import {updateCardHV} from "../card/util";
import {mobileKeydown} from "./util/keydown";
import {correctHotkey} from "../boot/globalEvent/commonHotkey";
import {IOSPurchase} from "../util/iOSPurchase";
import {processIOSPurchaseResponse} from "../util/iOSPurchase";
class App {
public plugins: import("../plugin").Plugin[] = [];
@ -163,7 +163,7 @@ window.reconnectWebSocket = () => {
window.siyuan.mobile.popEditor.protyle.ws.send("ping", {});
};
window.goBack = goBack;
window.IOSPurchase = IOSPurchase;
window.processIOSPurchaseResponse = processIOSPurchaseResponse;
window.showKeyboardToolbar = (height) => {
document.getElementById("keyboardToolbar").setAttribute("data-keyboardheight", (height ? height : window.outerHeight / 2 - 42).toString());
showKeyboardToolbar();

View File

@ -10,7 +10,7 @@ import {getCloudURL, getIndexURL} from "../../config/util/about";
import {Dialog} from "../../dialog";
import {hideElements} from "../../protyle/ui/hideElements";
import {Constants} from "../../constants";
import {genUUID} from "../../util/genID";
import {iOSPurchase} from "../../util/iOSPurchase";
export const showAccountInfo = () => {
const isIOS = isInIOS();
@ -129,31 +129,7 @@ ${renewHTML}`;
}
while (target && !target.isSameNode(modelMainElement)) {
if (target.getAttribute("data-action") === "iOSPay") {
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 = target.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);
}
iOSPurchase(target.getAttribute("data-type"));
event.preventDefault();
event.stopPropagation();
break;

View File

@ -224,7 +224,7 @@ interface Window {
showKeyboardToolbar(height: number): void
IOSPurchase(data: string): void
processIOSPurchaseResponse(code: number): void
hideKeyboardToolbar(): void

View File

@ -1,6 +1,8 @@
import {showMessage} from "../dialog/message";
import {fetchPost} from "./fetch";
import {genUUID} from "./genID";
export const IOSPurchase = (code: number) => {
export const processIOSPurchaseResponse = (code: number) => {
if (code === 0) {
/// #if MOBILE
document.querySelector("#modelMain").dispatchEvent(new CustomEvent("click", {
@ -48,3 +50,30 @@ export const IOSPurchase = (code: number) => {
showMessage(message, 0, "error");
}
};
export const iOSPurchase = (productType: string) => {
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;
let productID;
if (window.siyuan.config.cloudRegion === 0) {
productID = productType === "function" ? "china00" : "china02";
} else {
productID = productType === "function" ? "00" : "02";
}
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);
}
}