Explorar o código

优化Safari浏览器支付页面打开逻辑,移除openPaymentPage调用,统一使用setTimeout和window.open,提升代码可读性和兼容性。

wuyi hai 2 meses
pai
achega
24c6e21437
Modificáronse 2 ficheiros con 9 adicións e 5 borrados
  1. 5 3
      src/views/Account.vue
  2. 4 2
      src/views/VideoPlayer.vue

+ 5 - 3
src/views/Account.vue

@@ -91,8 +91,9 @@ const openPaymentPage = (url: string) => {
   const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);
 
   if (isSafari) {
-    // Safari浏览器:使用location.href跳转
-    window.location.href = url;
+    // Safari浏览器
+    setTimeout(() => window.open(url, "_blank"));
+    // window.location.href = url;
   } else {
     // 其他浏览器:正常使用window.open
     window.open(url, "_blank");
@@ -120,7 +121,8 @@ const handleMembershipPurchase = async () => {
       showMembershipDialog.value = false;
 
       // Safari兼容性处理:使用多种方式打开支付页面
-      openPaymentPage(response.code_url);
+      // openPaymentPage(response.code_url);
+      setTimeout(() => window.open(response.code_url, "_blank"));
 
       // 显示支付等待弹窗
       showPaymentWaitingDialog.value = true;

+ 4 - 2
src/views/VideoPlayer.vue

@@ -891,7 +891,8 @@ const handleMembershipPurchase = async () => {
       showMembershipPurchaseModal.value = false;
 
       // Safari兼容性处理:使用多种方式打开支付页面
-      openPaymentPage(response.code_url);
+      // openPaymentPage(response.code_url);
+      setTimeout(() => window.open(response.code_url, "_blank"));
 
       // 显示支付等待弹窗
       showPaymentWaitingDialog.value = true;
@@ -988,7 +989,8 @@ const purchaseVideo = async () => {
       showSinglePurchaseModal.value = false;
 
       // Safari兼容性处理:使用多种方式打开支付页面
-      openPaymentPage(response.code_url);
+      // openPaymentPage(response.code_url);
+      setTimeout(() => window.open(response.code_url, "_blank"));
 
       // 显示支付等待弹窗
       showSinglePaymentWaitingDialog.value = true;