每回遇到微信分享都是一個坑,目前的商城項目使用Vue開發,采用history的路由模式,配置微信分享又遇到了很多問題,最后終于解決了,現將解決的過程分享一下。
技術要點
Vue,history
常見問題及說明
debug模式下報false
這個沒得說,就是調用wx.config方法的參數錯誤造成的,請確認以下事項:
debug返回ok,分享不成功
單頁項目(SPA)中的一些要點
所有需要使用JS-SDK的頁面必須先注入配置信息,否則將無法調用(同一個url僅需調用一次,對于變化url的SPA的web app可在每次url變化時進行調用,目前Android微信客戶端不支持pushState的H5新特性,所以使用pushState來實現web app的頁面會導致簽名失敗,此問題會在Android6.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); }});代碼要點:
新聞熱點
疑難解答