cmy 4 سال پیش
والد
کامیت
7df4c1653e
1فایلهای تغییر یافته به همراه28 افزوده شده و 5 حذف شده
  1. 28 5
      utils/wxAuthorized.js

+ 28 - 5
utils/wxAuthorized.js

@@ -20,9 +20,12 @@ let router = '';
 /**
  * @param {string} 当前页面地址信息
  */
-export function loginWinxin() {
+export async function loginWinxin() {
 	console.log('1');
 	let pages, page, path;
+	if (!router) {
+		router = await setRouter();
+	}
 	try {
 		pages = getCurrentPages();
 		// 获取跳转前页面
@@ -37,7 +40,6 @@ export function loginWinxin() {
 	if (path != 'pages/redirect/redirect') {
 		log.addLog('开始注册微信')
 		weixindata().then(() => {
-			console.log('2');
 			// 调用
 			try {
 				weixinSq();
@@ -72,12 +74,16 @@ function weixinSq() {
 };
 
 // 微信注册
-export function weixindata(config) {
+export async function weixindata(config) {
 	let url;
 	try {
+		// 判断是否存在router
+		if (!router) {
+			router = await setRouter();
+		}
 		if (router.mode === "history") {
 			// 在ios中时候注册为微信刚进入时候的页面
-			if (window.entryUrl === '') {
+			if (!window.entryUrl) {
 				window.entryUrl = location.href.split('#')[0]
 			}
 			url = isAndroid() ? location.href.split('#')[0] : window.entryUrl;
@@ -216,7 +222,24 @@ function shareFun(config) {
 
 // 保存路由对象
 export function setRouter(route) {
-	router = route
+	return new Promise((ok, err) => {
+		router = getApp().$router;
+		console.log(router,'开始数据');
+		if (!router) {
+			const set = setInterval(() => {
+				router = getApp().$router;
+				console.log(router,'返回数据');
+				if (router) {
+					console.log(router,'结束');
+					clearInterval(set)
+					ok(router)
+				}
+			}, 100);
+		}else{
+			console.log(router,'成功');
+			ok(router)
+		}
+	})
 }
 
 export default {