Browse Source

fix: ios 在异步下无法打开新窗口

Before 6 months ago
parent
commit
7d4a0b5b5a

+ 6 - 4
src/app/[locale]/(TabBar)/deposit/DepositData.tsx

@@ -113,12 +113,14 @@ const DepositData: FC<Props> = (props) => {
                 // Toast.show({ icon: "success", content: t("code.200"), maskClickable: false });
                 tipModelRef.current?.onClose();
                 setAmount(undefined);
-                // const url = encodeURIComponent(
-                //     "https://caixa.pay4z.com/brl/qrcode.html?tradeNo=T2501180056ijk21kJ&amount=20&payAmount=20&currency=BRL&expiredAt=2025-01-18%2001%3A11%3A31&expire=1737173491282&raw=00020101021226870014br.gov.bcb.pix2565qrcode.santsbank.com%2Fdynamic%2Fdc8cf003-1616-47f8-94e6-16be500d05b45204000053039865802BR5907LF%20LTDA6009Sao%20Paulo62070503***6304DF54&type=QRCODE"
-                // );
+                // const url =
+                //     "https://caixa.pay4z.com/brl/qrcode.html?tradeNo=T2501180056ijk21kJ&amount=20&payAmount=20&currency=BRL&expiredAt=2025-01-18%2001%3A11%3A31&expire=1737173491282&raw=00020101021226870014br.gov.bcb.pix2565qrcode.santsbank.com%2Fdynamic%2Fdc8cf003-1616-47f8-94e6-16be500d05b45204000053039865802BR5907LF%20LTDA6009Sao%20Paulo62070503***6304DF54&type=QRCODE";
 
                 if (res.data.pay_url) {
-                    router.push(`/payinfo?url=${res.data.pay_url}`);
+                    // fix: ios 限制
+                    setTimeout(() => {
+                        window.open(res.data.pay_url);
+                    }, 0);
                 } else {
                     Toast.show({ icon: "success", content: t("code.200"), maskClickable: false });
                 }

+ 4 - 1
src/app/[locale]/(navbar)/doings/discount/DepositData.tsx

@@ -106,7 +106,10 @@ const DepositData: FC<Props> = (props) => {
                 setDepositState(data);
                 setActiveType(data[0]);
                 if (res.data.pay_url) {
-                    router.push(`/payinfo?url=${res.data.pay_url}`);
+                    // fix: ios 跳转限制
+                    setTimeout(() => {
+                        window.open(res.data.pay_url);
+                    }, 0);
                 } else {
                     Toast.show({ icon: "success", content: t("code.200"), maskClickable: false });
                 }