分享链接防微信封

This commit is contained in:
yezian 2024-12-13 15:59:39 +08:00
parent c5af23a155
commit c5dbb6794c
1 changed files with 40 additions and 2 deletions
app/zone/share/[user_id]

View File

@ -10,8 +10,26 @@ export default function Share({ params }) {
//
const [data, setData] = useState({});
const [qrcodeUrl, setQrcodeUrl] = useState("");
const [shareWebUrl, setShareWebUrl] = useState("https://tiefen.fun");
const [isFetching, setIsFetching] = useState(true);
function generateRandomString(length = 10) {
const characters =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
let result = "";
for (let i = 0; i < length; i++) {
result += characters.charAt(
Math.floor(Math.random() * characters.length)
);
}
return result;
}
useEffect(() => {
function getRandomUrl(urls) {
return urls[Math.floor(Math.random() * urls.length)];
}
const getData = async () => {
try {
const base = baseRequest();
@ -40,9 +58,28 @@ export default function Share({ params }) {
return;
}
setData(detailData.data.streamer_ext);
const urlsResponse = await fetch(`/api/config/cold_config`, {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ ...base }),
});
const urlsData = await urlsResponse.json();
if (urlsData.ret === -1) {
Toast.show({
content: urlsData.msg,
});
return;
}
const randomUrl = getRandomUrl(urlsData.data.share_redirect_urls);
setShareWebUrl(randomUrl);
const randomStr = generateRandomString();
var QRCode = require("qrcode");
QRCode.toDataURL(
`https://tiefen.fun/zone/${params.user_id}`,
`${randomUrl}/zone/${params.user_id}/${randomStr}`,
function (err, url) {
setQrcodeUrl(url);
}
@ -153,10 +190,11 @@ export default function Share({ params }) {
//
const copyUrl = () => {
const randomStr = generateRandomString();
window.ReactNativeWebView.postMessage(
JSON.stringify({
type: "COPY_URL",
data: `https://tiefen.fun/zone/${params.user_id}`,
data: `${shareWebUrl}/zone/${params.user_id}/${randomStr}`,
})
);
};