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 {syncGuide} from "../sync/syncGuide";
import {hideElements} from "../protyle/ui/hideElements"; import {hideElements} from "../protyle/ui/hideElements";
import {getCloudURL, getIndexURL} from "./util/about"; import {getCloudURL, getIndexURL} from "./util/about";
import {genUUID} from "../util/genID"; import {iOSPurchase} from "../util/iOSPurchase";
const genSVGBG = () => { const genSVGBG = () => {
let html = ""; let html = "";
@ -240,31 +240,7 @@ ${renewHTML}
bindEvent: (element: Element) => { bindEvent: (element: Element) => {
element.querySelectorAll('[data-action="iOSPay"]').forEach(item => { element.querySelectorAll('[data-action="iOSPay"]').forEach(item => {
item.addEventListener("click", () => { item.addEventListener("click", () => {
if (window.siyuan.user) { iOSPurchase(item.getAttribute("data-type"));
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"); const trialSubElement = element.querySelector("#trialSub");

View File

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

View File

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

View File

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

View File

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

View File

@ -1,6 +1,8 @@
import {showMessage} from "../dialog/message"; 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 (code === 0) {
/// #if MOBILE /// #if MOBILE
document.querySelector("#modelMain").dispatchEvent(new CustomEvent("click", { document.querySelector("#modelMain").dispatchEvent(new CustomEvent("click", {
@ -48,3 +50,30 @@ export const IOSPurchase = (code: number) => {
showMessage(message, 0, "error"); 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);
}
}