ios的安装按钮是否出现,用apollo进行配置

This commit is contained in:
yezian 2024-11-04 17:01:21 +08:00
parent 2b9bc589fd
commit 6b177c8ed9
1 changed files with 42 additions and 2 deletions

View File

@ -5,9 +5,13 @@ import InOtherApp from "@/components/InOtherApp";
import Footer from "@/components/Footer";
import IosInstallStepModal from "@/components/IosInstallStepModal/page";
import { getCookie } from "cookies-next";
import baseRequest from "@/utils/baseRequest";
import { generateSignature } from "@/utils/crypto";
export default function Home() {
const [deviceType, setDeviceType] = useState("");
const [isIosInstallButtonVisible, setIsIosInstallButtonVisible] =
useState(true);
useEffect(() => {
const userAgent = navigator.userAgent;
//
@ -18,6 +22,37 @@ export default function Home() {
} else {
setDeviceType("pc");
}
const handleIosInstallButtonVisibility = async () => {
try {
const base = baseRequest();
const body = {
...base,
};
const signature = generateSignature(body);
const _response = await fetch(
`/api/app/is_ios_install_button_visible?signature=${signature}`,
{
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify(body),
}
);
const _data = await _response.json();
if (_data.ret === -1) {
Toast.show({
content: _data.msg,
});
return;
}
if (_data.data === 0) setIsIosInstallButtonVisible(false);
} catch (error) {
console.error(error);
}
};
handleIosInstallButtonVisibility();
}, []);
//iosModal
@ -155,7 +190,8 @@ export default function Home() {
)}
</div>
<div className="flex flex-col items-center gap-2">
{deviceType !== "pc" && (
{(deviceType === "Android" ||
(deviceType === "ios" && isIosInstallButtonVisible)) && (
<div
className="btn bg-gradient-to-r from-[#FF668B] to-[#FF66F0] rounded-full text-white text-lg font-medium w-64 h-14"
onClick={() => {
@ -175,7 +211,11 @@ export default function Home() {
)}
{deviceType === "ios" && (
<div
className="btn bg-[#FFFFFF1A] rounded-full text-white text-lg font-medium w-64 h-14"
className={`btn ${
deviceType === "ios" &&
!isIosInstallButtonVisible &&
"bg-gradient-to-r from-[#FF668B] to-[#FF66F0]"
} bg-[#FFFFFF1A] rounded-full text-white text-lg font-medium w-64 h-14`}
onClick={() => {
const inviter = getCookie("inviter");
const url = `https://app.tiefen.fun?inviter=${inviter}`;