feat: 扫码进入问题修复

This commit is contained in:
2025-11-15 10:39:36 +08:00
parent 9fffb85b47
commit 7221a86214
4 changed files with 34 additions and 36 deletions

View File

@@ -5,6 +5,7 @@ import "./app.scss";
import "./scss/qweather-icons/qweather-icons.css";
import { useGlobalStore } from "./store/global";
import { removeStorage } from "./store/storage";
import { sceneRedirectLogic } from './utils/helper'
interface AppProps {
children: ReactNode;
@@ -17,7 +18,6 @@ function clearSpecStorage() {
class App extends Component<AppProps> {
onLaunch(options) {
console.log('launch options: ', options)
console.log("小程序启动,初始化逻辑写这里");
clearSpecStorage()
Taro.onNeedPrivacyAuthorization((resolve) => {
@@ -36,6 +36,7 @@ class App extends Component<AppProps> {
// console.error('字体加载失败', err);
// }
// })
sceneRedirectLogic(options.query, options.path);
}
componentDidMount() {

View File

@@ -18,7 +18,7 @@ import Participants from "./components/Participants";
import SupplementalNotes from "./components/SupplementalNotes";
import OrganizerInfo from "./components/OrganizerInfo";
import SharePopup from "./components/SharePopup";
import { navto, toast, useSceneRedirect } from "./utils/helper";
import { navto, toast } from "./utils/helper";
import ArrowLeft from "@/static/detail/icon-arrow-left.svg";
import Logo from "@/static/detail/icon-logo-go.svg";
import styles from "./index.module.scss";
@@ -37,8 +37,6 @@ function Index() {
const { statusNavbarHeightInfo } = useGlobalState();
const { statusBarHeight, navBarHeight } = statusNavbarHeightInfo;
useSceneRedirect("game_pages/detail/index");
const isMyOwn = userInfo.id === myInfo.id;
const sharePopupRef = useRef<any>(null);
@@ -254,4 +252,6 @@ function Index() {
);
}
export default withAuth(Index);
// export default withAuth(Index);
const ExportPage = withAuth(Index);
export default ExportPage;

View File

@@ -1,6 +1,4 @@
import Taro, {
useLoad,
} from "@tarojs/taro";
import Taro from "@tarojs/taro";
export function navto(url) {
Taro.navigateTo({
@@ -18,34 +16,6 @@ export function insertDotInTags(tags: string[]) {
return tags.join("-·-").split("-");
}
export const useSceneRedirect = (defaultPage: string) => {
useLoad((options) => {
if (options.scene) {
try {
const decoded = decodeURIComponent(options.scene || "");
const params: Record<string, string> = {};
decoded.split("&").forEach((pair) => {
const [key, value] = pair.split("=");
if (key) params[key] = value ? decodeURIComponent(value) : "";
});
// 拼接成 URL query
const query = Object.entries(params)
.map(([k, v]) => `${k}=${encodeURIComponent(v)}`)
.join("&");
console.log('scan query', query)
Taro.redirectTo({
url: query ? `/${defaultPage}?${query}` : `/${defaultPage}`,
});
} catch (err) {
console.error("scene 解析失败:", err);
}
}
});
};
export function genNTRPRequirementText(min, max) {
if (min && max && min !== max) {
return `${min} - ${max} 之间`;

27
src/utils/helper.ts Normal file
View File

@@ -0,0 +1,27 @@
import Taro from "@tarojs/taro";
// 普通函数,不调用 useLoad
export const sceneRedirectLogic = (options, defaultPage: string) => {
console.log(options, 12345)
if (!options.scene) return;
try {
const decoded = decodeURIComponent(options.scene || "");
const params: Record<string, string> = {};
decoded.split("&").forEach((pair) => {
const [key, value] = pair.split("=");
if (key) params[key] = value ? decodeURIComponent(value) : "";
});
const query = Object.entries(params)
.map(([k, v]) => `${k}=${encodeURIComponent(v)}`)
.join("&");
Taro.redirectTo({
url: query ? `/${defaultPage}?${query}` : `/${defaultPage}`,
});
} catch (e) {
console.error(e);
}
};