12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- import Vue from 'vue'
- import WeiXinSDK from '@/utils/wx-js-sdk-register.ts'
- import { isWeiXinBrowser, androidOrIOS } from '@/utils/globalFunctions'
- import { getWxSdkSign } from '@/api/index.ts'
- declare module 'vue/types/vue' {
- interface Vue {
- $env: any;
- $registerWxSdk: any;
- $wxSdk: any;
- }
- }
- const inWeiXinBrowser = isWeiXinBrowser()
- const isAndroidOrIos = androidOrIOS()
- const firstUrl = location.href.split('#')[0]
- export async function getSdkSign (url: string) {
- const sdkInfo = await getWxSdkSign({ url })
- if (!sdkInfo) return
- const info = sdkInfo.data
- if (info && info.wxsdk && Array.isArray(info.wxsdk)) {
- const sdk = info.wxsdk
- return new WeiXinSDK({
- appId: sdk[0],
- timestamp: sdk[1],
- nonceStr: sdk[2],
- signature: sdk[3]
- })
- }
- }
- /* 微信自定义分享封装函数 */
- /**
- * url:获取微信分享签名的url地址
- * isShare:当前所在路径是否需要分享
- * */
- export async function weChatShare (options: any) {
- if (!inWeiXinBrowser) return
- const device = isAndroidOrIos
- // 获取并注册sdkSign
- const url = location.href.split('#')[0]
- if (device === 'ios') {
- // url = firstUrl
- console.log(firstUrl)
- }
- const wxSdk: any = await getSdkSign(url)
- Vue.prototype.$wxSdk = wxSdk
- wxSdk.shareToFriendAndQQ(options)
- wxSdk.shareToFriendsAndQZone(options)
- return wxSdk
- }
- export async function weChatPay (options: any) {
- if (!inWeiXinBrowser) return
- // 获取并注册sdkSign
- const url = location.href.split('#')[0]
- const wxSdk: any = await getSdkSign(url)
- Vue.prototype.$wxSdk = wxSdk
- wxSdk.chooseWXPayForWeiXinJSBridge(options)
- return wxSdk
- }
|