|
|
@@ -1,245 +1,252 @@
|
|
|
-import {
|
|
|
- wechatConfig,
|
|
|
- share
|
|
|
-} from '@/api/wx';
|
|
|
-// 加载日志
|
|
|
-import * as log from './log.js'
|
|
|
-import {
|
|
|
- isAndroid
|
|
|
-} from './platform.js'
|
|
|
-import store from '../store';
|
|
|
-// 保存wx对象
|
|
|
-import weixinObj from "@/plugin/jweixin-module/index.js";
|
|
|
-// 保存分享数据
|
|
|
-let shareData = '';
|
|
|
-// 保存注册返回appId数据
|
|
|
-let appId = '';
|
|
|
-//保存路由对象
|
|
|
-let router = '';
|
|
|
-//微信登录
|
|
|
-/**
|
|
|
- * @param {string} 当前页面地址信息
|
|
|
- */
|
|
|
-export function loginWinxin() {
|
|
|
- console.log('1');
|
|
|
- let pages, page, path;
|
|
|
- try {
|
|
|
- pages = getCurrentPages();
|
|
|
- // 获取跳转前页面
|
|
|
- page = pages[pages.length - 1];
|
|
|
- // 获取跳转前路由地址
|
|
|
- path = page.route;
|
|
|
- } catch (e) {
|
|
|
- console.log(e);
|
|
|
- //TODO handle the exception
|
|
|
- }
|
|
|
- // 判断是否在登录页
|
|
|
- if (path != 'pages/redirect/redirect') {
|
|
|
- log.addLog('开始注册微信')
|
|
|
- weixindata().then(() => {
|
|
|
- console.log('2');
|
|
|
- // 调用
|
|
|
- try {
|
|
|
- weixinSq();
|
|
|
- } catch (e) {
|
|
|
- console.log(e);
|
|
|
- //TODO handle the exception
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
-};
|
|
|
-// 微信授权登录
|
|
|
-function weixinSq() {
|
|
|
- // 微信授权后跳转页面
|
|
|
- try {
|
|
|
- // 判断是否真实路由模式
|
|
|
- const type = router.mode === "history"?'':'/#'
|
|
|
- let ul = encodeURIComponent(store.state.baseURL + store.state.urlFile +type+ '/pages/redirect/redirect');
|
|
|
- // 打开微信授权页面
|
|
|
- let url =
|
|
|
- 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' +
|
|
|
- appId +
|
|
|
- '&redirect_uri=' +
|
|
|
- ul +
|
|
|
- '&response_type=code&scope=snsapi_userinfo&state=' +
|
|
|
- new Date().getTime() +
|
|
|
- '#wechat_redirect';
|
|
|
- window.location.href = url;
|
|
|
- } catch (e) {
|
|
|
- console.log(e);
|
|
|
- //TODO handle the exception
|
|
|
- }
|
|
|
-};
|
|
|
-
|
|
|
-// 微信注册
|
|
|
-export function weixindata(config) {
|
|
|
- let url;
|
|
|
- try {
|
|
|
- if (router.mode === "history") {
|
|
|
- // 在ios中时候注册为微信刚进入时候的页面
|
|
|
- if (window.entryUrl === '') {
|
|
|
- window.entryUrl = location.href.split('#')[0]
|
|
|
- }
|
|
|
- url = isAndroid() ? location.href.split('#')[0] : window.entryUrl;
|
|
|
- }
|
|
|
- if (router.mode === "hash") {
|
|
|
- url = location.href.split('#')[0];
|
|
|
- }
|
|
|
- log.addLog('注册开始', url)
|
|
|
- console.log('开始注册', url);
|
|
|
-
|
|
|
- } catch (e) {
|
|
|
- console.log('错误', e);
|
|
|
- }
|
|
|
- return new Promise((ok, error) => {
|
|
|
- try {
|
|
|
- //注册微信信息
|
|
|
- wechatConfig({
|
|
|
- url
|
|
|
- })
|
|
|
- .then(({
|
|
|
- data
|
|
|
- }) => {
|
|
|
- try {
|
|
|
- // 保存appId
|
|
|
- appId = data.appId
|
|
|
- // 微信信息配置
|
|
|
- weixinObj.config({
|
|
|
- debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
|
|
|
- appId: data.appId, // 必填,企业号的唯一标识,此处填写企业号corpid
|
|
|
- timestamp: data.timestamp, // 必填,生成签名的时间戳
|
|
|
- nonceStr: data.nonceStr, // 必填,生成签名的随机串
|
|
|
- signature: data.signature, // 必填,签名,见附录1
|
|
|
- jsApiList: data.jsApiList // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
|
|
|
- });
|
|
|
- weixinObj.ready((e) => {
|
|
|
- log.addLog("注册完毕", data)
|
|
|
- console.log('注册完毕');
|
|
|
- ok(data)
|
|
|
- })
|
|
|
- } catch (e) {
|
|
|
- console.log(e)
|
|
|
- }
|
|
|
- })
|
|
|
- .catch(e => {
|
|
|
- error(e);
|
|
|
- console.log(e);
|
|
|
- });
|
|
|
- } catch (e) {
|
|
|
- console.log(e);
|
|
|
- //TODO handle the exception
|
|
|
- }
|
|
|
- })
|
|
|
-}
|
|
|
-
|
|
|
-// 判断分享调用方法
|
|
|
-export function shareLoad(config) {
|
|
|
- console.log('开始调用分享')
|
|
|
- try {
|
|
|
- weixindata().then((e) => {
|
|
|
- // 判断有无自定义数据
|
|
|
- if (config) {
|
|
|
- shareFun(config)
|
|
|
- } else {
|
|
|
- // 判断是否已经缓存了默认数据
|
|
|
- if (shareData) {
|
|
|
- shareFun()
|
|
|
- } else {
|
|
|
- // 请求获取默认数据
|
|
|
- share({}).then(({
|
|
|
- data
|
|
|
- }) => {
|
|
|
- shareData = data.data
|
|
|
- shareFun()
|
|
|
- });
|
|
|
- }
|
|
|
- }
|
|
|
- })
|
|
|
- } catch (e) {
|
|
|
- console.log('报错', e)
|
|
|
- //TODO handle the exception
|
|
|
- }
|
|
|
-}
|
|
|
-// 配置分享数据
|
|
|
-function shareFun(config) {
|
|
|
- try {
|
|
|
- console.log('再付分享内容', config);
|
|
|
- // uni.showModal({
|
|
|
- // title: '链接',
|
|
|
- // content: config.link,
|
|
|
- // showCancel: false,
|
|
|
- // cancelText: '',
|
|
|
- // confirmText: '',
|
|
|
- // success: res => {},
|
|
|
- // fail: () => {},
|
|
|
- // complete: () => {}
|
|
|
- // });
|
|
|
- let mess;
|
|
|
- if (config) {
|
|
|
- mess = {
|
|
|
- link: config.link, // 分享链接
|
|
|
- imgUrl: config.imgUrl,
|
|
|
- desc: config.desc,
|
|
|
- title: config.title,
|
|
|
- success: config.success || function(e) {
|
|
|
- console.log(e);
|
|
|
- },
|
|
|
- fail: config.fail || function(e) {
|
|
|
- console.log(e);
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- const userInfo = uni.getStorageSync('userInfo')
|
|
|
- console.log(userInfo);
|
|
|
- const url = window.location.href + '?spread=' + userInfo.uid;
|
|
|
- url = url.replace(/[\?,&]{0,1}from=singlemessage/g, '');
|
|
|
- mess = {
|
|
|
- title: shareData.title,
|
|
|
- link: url, // 分享链接
|
|
|
- imgUrl: shareData.img, // 分享图标
|
|
|
- desc: shareData.synopsis,
|
|
|
- success: function() {
|
|
|
- // uni.showModal({
|
|
|
- // title: '分享',
|
|
|
- // content: '分享成功',
|
|
|
- // showCancel: false,
|
|
|
- // success: res => {
|
|
|
- // console.log('分享成功回调接口');
|
|
|
- // },
|
|
|
- // fail: () => {},
|
|
|
- // complete: () => {}
|
|
|
- // });
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- // uni.showModal({
|
|
|
- // title:"提示",
|
|
|
- // content:JSON.stringify(mess)
|
|
|
- // })
|
|
|
- console.log(mess,'data')
|
|
|
- // 获取仓库数据
|
|
|
- // 分享好友
|
|
|
- weixinObj.updateAppMessageShareData(mess);
|
|
|
- // weixinObj.onMenuShareAppMessage(mess);// 即将废弃
|
|
|
-
|
|
|
- // 分享朋友圈
|
|
|
- weixinObj.updateTimelineShareData(mess)
|
|
|
- // weixinObj.onMenuShareTimeline(mess);// 即将废弃
|
|
|
- } catch (e) {
|
|
|
- console.log(e);
|
|
|
- //TODO handle the exception
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-// 保存路由对象
|
|
|
-export function setRouter(route) {
|
|
|
- router = route
|
|
|
-}
|
|
|
-
|
|
|
-export default {
|
|
|
- weixinObj,
|
|
|
- shareData,
|
|
|
- appId,
|
|
|
- setRouter,
|
|
|
- shareLoad
|
|
|
-}
|
|
|
+import {
|
|
|
+ wechatConfig,
|
|
|
+ share
|
|
|
+} from '@/api/wx';
|
|
|
+// 加载日志
|
|
|
+import * as log from './log.js'
|
|
|
+import {
|
|
|
+ isAndroid
|
|
|
+} from './platform.js'
|
|
|
+import store from '../store';
|
|
|
+// 保存wx对象
|
|
|
+import weixinObj from "@/plugin/jweixin-module/index.js";
|
|
|
+// 保存分享数据
|
|
|
+let shareData = '';
|
|
|
+// 保存注册返回appId数据
|
|
|
+let appId = '';
|
|
|
+//保存路由对象
|
|
|
+let router = '';
|
|
|
+//微信登录
|
|
|
+/**
|
|
|
+ * @param {string} 当前页面地址信息
|
|
|
+ */
|
|
|
+export async function loginWinxin() {
|
|
|
+ console.log('1');
|
|
|
+ let pages, page, path;
|
|
|
+ if (!router) {
|
|
|
+ router = await setRouter();
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ pages = getCurrentPages();
|
|
|
+ // 获取跳转前页面
|
|
|
+ page = pages[pages.length - 1];
|
|
|
+ // 获取跳转前路由地址
|
|
|
+ path = page.route;
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e);
|
|
|
+ //TODO handle the exception
|
|
|
+ }
|
|
|
+ // 判断是否在登录页
|
|
|
+ if (path != 'pages/redirect/redirect') {
|
|
|
+ log.addLog('开始注册微信')
|
|
|
+ weixindata().then(() => {
|
|
|
+ // 调用
|
|
|
+ try {
|
|
|
+ weixinSq();
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e);
|
|
|
+ //TODO handle the exception
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+};
|
|
|
+// 微信授权登录
|
|
|
+function weixinSq() {
|
|
|
+ // 微信授权后跳转页面
|
|
|
+ try {
|
|
|
+ // 判断是否真实路由模式
|
|
|
+ const type = router.mode === "history"?'':'/#'
|
|
|
+ let ul = encodeURIComponent(store.state.baseURL + store.state.urlFile +type+ '/pages/redirect/redirect');
|
|
|
+ // 打开微信授权页面
|
|
|
+ let url =
|
|
|
+ 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' +
|
|
|
+ appId +
|
|
|
+ '&redirect_uri=' +
|
|
|
+ ul +
|
|
|
+ '&response_type=code&scope=snsapi_userinfo&state=' +
|
|
|
+ new Date().getTime() +
|
|
|
+ '#wechat_redirect';
|
|
|
+ window.location.href = url;
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e);
|
|
|
+ //TODO handle the exception
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+// 微信注册
|
|
|
+export async function weixindata(config) {
|
|
|
+ let url;
|
|
|
+ store.commit('setWeiChatObj', weixinObj)
|
|
|
+ try {
|
|
|
+ // 判断是否存在router
|
|
|
+ if (!router) {
|
|
|
+ router = await setRouter();
|
|
|
+ }
|
|
|
+ if (router.mode === "history") {
|
|
|
+ // 在ios中时候注册为微信刚进入时候的页面
|
|
|
+ if (!window.entryUrl) {
|
|
|
+ window.entryUrl = location.href.split('#')[0]
|
|
|
+ }
|
|
|
+ url = isAndroid() ? location.href.split('#')[0] : window.entryUrl;
|
|
|
+ }
|
|
|
+ if (router.mode === "hash") {
|
|
|
+ url = location.href.split('#')[0];
|
|
|
+ }
|
|
|
+ log.addLog('注册开始', url)
|
|
|
+ console.log('开始注册', url);
|
|
|
+
|
|
|
+ } catch (e) {
|
|
|
+ console.log('错误', e);
|
|
|
+ }
|
|
|
+ return new Promise((ok, error) => {
|
|
|
+ try {
|
|
|
+ //注册微信信息
|
|
|
+ wechatConfig({
|
|
|
+ url
|
|
|
+ })
|
|
|
+ .then(({
|
|
|
+ data
|
|
|
+ }) => {
|
|
|
+ try {
|
|
|
+ // 保存appId
|
|
|
+ appId = data.appId
|
|
|
+ // 微信信息配置
|
|
|
+ weixinObj.config({
|
|
|
+ debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
|
|
|
+ appId: data.appId, // 必填,企业号的唯一标识,此处填写企业号corpid
|
|
|
+ timestamp: data.timestamp, // 必填,生成签名的时间戳
|
|
|
+ nonceStr: data.nonceStr, // 必填,生成签名的随机串
|
|
|
+ signature: data.signature, // 必填,签名,见附录1
|
|
|
+ jsApiList: data.jsApiList // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
|
|
|
+ });
|
|
|
+ weixinObj.ready((e) => {
|
|
|
+ log.addLog("注册完毕", data)
|
|
|
+ console.log('注册完毕');
|
|
|
+ ok(data)
|
|
|
+ })
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ error(e);
|
|
|
+ console.log(e);
|
|
|
+ });
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e);
|
|
|
+ //TODO handle the exception
|
|
|
+ }
|
|
|
+ })
|
|
|
+}
|
|
|
+
|
|
|
+// 判断分享调用方法
|
|
|
+export function shareLoad(config) {
|
|
|
+ console.log('开始调用分享')
|
|
|
+ try {
|
|
|
+ weixindata().then((e) => {
|
|
|
+ // 判断有无自定义数据
|
|
|
+ if (config) {
|
|
|
+ shareFun(config)
|
|
|
+ } else {
|
|
|
+ // 判断是否已经缓存了默认数据
|
|
|
+ if (shareData) {
|
|
|
+ shareFun()
|
|
|
+ } else {
|
|
|
+ // 请求获取默认数据
|
|
|
+ share({}).then(({
|
|
|
+ data
|
|
|
+ }) => {
|
|
|
+ shareData = data.data
|
|
|
+ shareFun()
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ } catch (e) {
|
|
|
+ console.log('报错', e)
|
|
|
+ //TODO handle the exception
|
|
|
+ }
|
|
|
+}
|
|
|
+// 配置分享数据
|
|
|
+function shareFun(config) {
|
|
|
+ try {
|
|
|
+ console.log('再付分享内容', config);
|
|
|
+ let mess;
|
|
|
+ if (config) {
|
|
|
+ mess = {
|
|
|
+ link: config.link, // 分享链接
|
|
|
+ imgUrl: config.imgUrl,
|
|
|
+ desc: config.desc,
|
|
|
+ title: config.title,
|
|
|
+ success: config.success || function(e) {
|
|
|
+ console.log(e);
|
|
|
+ },
|
|
|
+ fail: config.fail || function(e) {
|
|
|
+ console.log(e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ const userInfo = uni.getStorageSync('userInfo')
|
|
|
+ console.log(userInfo);
|
|
|
+ const url = window.location.href + '?spread=' + userInfo.uid;
|
|
|
+ url = url.replace(/[\?,&]{0,1}from=singlemessage/g, '');
|
|
|
+ mess = {
|
|
|
+ title: shareData.title,
|
|
|
+ link: url, // 分享链接
|
|
|
+ imgUrl: shareData.img, // 分享图标
|
|
|
+ desc: shareData.synopsis,
|
|
|
+ success: function() {
|
|
|
+ // uni.showModal({
|
|
|
+ // title: '分享',
|
|
|
+ // content: '分享成功',
|
|
|
+ // showCancel: false,
|
|
|
+ // success: res => {
|
|
|
+ // console.log('分享成功回调接口');
|
|
|
+ // },
|
|
|
+ // fail: () => {},
|
|
|
+ // complete: () => {}
|
|
|
+ // });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 获取仓库数据
|
|
|
+ // 分享好友
|
|
|
+ weixinObj.updateAppMessageShareData(mess);
|
|
|
+
|
|
|
+ // 分享朋友圈
|
|
|
+ weixinObj.updateTimelineShareData(mess)
|
|
|
+ } catch (e) {
|
|
|
+ console.log(e);
|
|
|
+ //TODO handle the exception
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+// 保存路由对象
|
|
|
+export function setRouter(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 {
|
|
|
+ weixinObj,
|
|
|
+ shareData,
|
|
|
+ appId,
|
|
|
+ setRouter,
|
|
|
+ shareLoad
|
|
|
+}
|