Vue 프로젝트 history 모드 에서 위 챗 공유 구덩이 정리
8264 단어 Vuehistory 모드위 챗 공유
기술 요점
Vue,history
흔 한 문제 및 설명
debug 모드 에서 false 보고
이것 은 말 할 것 도 없 이 wx.config 방법 을 호출 하 는 매개 변수 오류 로 인 한 것 입 니 다.다음 사항 을 확인 하 십시오.
debug 반환 ok,공유 실패
JS-SDK 를 사용 해 야 하 는 모든 페이지 는 설정 정 보 를 먼저 입력 해 야 합 니 다.그렇지 않 으 면 호출 할 수 없습니다.이 문 제 는 Android 6.2 에서 복 구 됩 니 다).
위의 그 말 에서 발췌 한 것공식 문서
개발 자가 주의해 야 할 사항:
Code
router/index.js
......
import { wechatAuth } from "@/common/wechatConfig.js";
......
const router = new Router({
mode: "history",
base: process.env.BASE_URL,
routes: [
{
path: "/",
name: "home",
meta: {
title: " ",
showTabbar: true,
allowShare: true
},
},
{
path: "/cart",
name: "cart",
meta: {
title: " ",
showTabbar: true
},
component: () => import("./views/cart/index.vue")
}
......
]
});
router.afterEach((to, from) => {
let authUrl = `${window.location.origin}${to.fullPath}`;
let allowShare = !!to.meta.allowShare;
if (!!window.__wxjs_is_wkwebview) {// IOS
if (window.entryUrl == "" || window.entryUrl == undefined) {
window.entryUrl = authUrl; //
}
wechatAuth(authUrl, "ios", allowShare);
} else {
//
setTimeout(function () {
wechatAuth(authUrl, "android", allowShare);
}, 500);
}
});
코드 요점:
import http from "../api/http";
import store from "../store/store";
export const wechatAuth = async (authUrl, device, allowShare) => {
let shareConfig = {
title: "xx ",
desc: "xxxx",
link: allowShare ? authUrl : window.location.origin,
imgUrl: window.location.origin + "/share.png"
};
let authRes = await http.get("/pfront/wxauth/jsconfig", {
params: {
url: decodeURIComponent(device == "ios" ? window.entryUrl : authUrl)
}
});
if (authRes && authRes.code == 101) {
wx.config({
//debug: true,
appId: authRes.data.appId,
timestamp: authRes.data.timestamp,
nonceStr: authRes.data.nonceStr,
signature: authRes.data.signature,
jsApiList: ["updateAppMessageShareData", "updateTimelineShareData", "onMenuShareAppMessage", "onMenuShareTimeline"]
});
wx.ready(() => {
wx.updateAppMessageShareData({
title: shareConfig.title,
desc: shareConfig.desc,
link: shareConfig.link,
imgUrl: shareConfig.imgUrl,
success: function () {//
//shareSuccessCallback();
}
});
wx.updateTimelineShareData({
title: shareConfig.title,
link: shareConfig.link,
imgUrl: shareConfig.imgUrl,
success: function () {//
//shareSuccessCallback();
}
});
wx.onMenuShareTimeline({
title: shareConfig.title,
link: shareConfig.link,
imgUrl: shareConfig.imgUrl,
success: function () {
shareSuccessCallback();
}
});
wx.onMenuShareAppMessage({
title: shareConfig.title,
desc: shareConfig.desc,
link: shareConfig.link,
imgUrl: shareConfig.imgUrl,
success: function () {
shareSuccessCallback();
}
});
});
}
};
function shareSuccessCallback() {
if (!store.state.user.uid) {
return false;
}
store.state.cs.stream({
eid: "share",
tpc: "all",
data: {
uid: store.state.user.uid,
truename: store.state.user.truename || ""
}
});
http.get("/pfront/member/share_score", {
params: {
uid: store.state.user.uid
}
});
}
총결산원래 공유 할 수 없 었 던 페이지 는 hidemenuItems 방법 으로 관련 단 추 를 숨 겼 습 니 다.ios 에서 시도 해 보 았 습 니 다.일부 bug:단 추 를 표시 하 는 페이지 에서 전환 하 는 그림자 숨 김 단추 의 페이지,공유 단 추 는 가끔 존재 합 니 다.새로 고침 하면 문제 가 없 을 것 입 니 다.또 하나의 깊 은 구덩이 일 것 입 니 다.고생 할 정력 이 없 으 면 프라이버시 페이지 로 홈 페이지 를 공유 하고 공공 페이지 에서 원래 주 소 를 공유 합 니 다.좋 은 해결 방법 이 있 으 면 연락 주세요!
처음에 저 는 sf 에 있 는 블 로그https://www.jb51.net/article/158685.htm를 참 고 했 습 니 다.위의 코드 에 따라 안 드 로 이 드 핸드폰 은 모두 성공 할 수 있 었 습 니 다.그러나 IOS 에 이상 한 문제 가 있 었 습 니 다.바로 간헐 적 인 실 효 를 공유 하 는 것 입 니 다.같은 페이지 에서 공유 에 성 공 했 습 니 다.다시 시도 하면 실 패 했 습 니 다(아이콘,title 없 이 첫 페이지 로 넘 어 갈 수 밖 에 없습니다).'끊 임 없 는'노력 을 통 해문 제 를 해결 한 것 같 습 니 다.과정 을 말씀 해 주세요.
참조 링크
https://www.jb51.net/article/158685.htm
https://www.jb51.net/article/158693.htm
https://www.jb51.net/article/158690.htm
https://github.com/vuejs/vue-router/issues/481
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Vue Render 함수로 DOM 노드 코드 인스턴스 만들기render에서createElement 함수를 사용하여 DOM 노드를 만드는 것은 직관적이지 않지만 일부 독립 구성 요소의 디자인에서 특수한 수요를 충족시킬 수 있습니다.간단한 렌더링 예는 다음과 같습니다. 또한 v...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.