wxchar.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. // vuex使用
  2. import request from '@/api/request.js'
  3. import homeApi from '@/api/home/index.js'
  4. const jweixin = require("jweixin-module");
  5. export const getPlatform = () => {
  6. //默认web
  7. let platform = 5;
  8. //#ifdef APP-PLUS || APP-NVUE
  9. const system = uni.getSystemInfoSync();
  10. if (system.platform === "ios") {
  11. platform = 1;
  12. } else {
  13. platform = 2;
  14. }
  15. //#endif
  16. //#ifdef H5
  17. platform = 3;
  18. //#endif
  19. //#ifdef MP-WEIXIN
  20. platform = 4;
  21. //#endif
  22. return platform;
  23. };
  24. //判断浏览器是否是微信浏览器
  25. export const checkIsWechatBrowser = () => {
  26. let platform = getPlatform();
  27. if (platform === 3) {
  28. return (
  29. navigator.userAgent.toLowerCase().match(/MicroMessenger/i) ==
  30. "micromessenger"
  31. );
  32. } else {
  33. return false;
  34. }
  35. };
  36. //初始化微信分享配置(以下代码是封装在一个类文件的一个方法)
  37. async function initWeixinShareConfig(options = {}) {
  38. //检测是否处于微信浏览器环境下
  39. if (!checkIsWechatBrowser()) {
  40. return;
  41. }
  42. let _this = this;
  43. //获取请求服务端获取签名信息
  44. const res = await homeApi.share2();
  45. if (res.status == 200) {
  46. //配置
  47. var data = {
  48. debug: res.data.jsapi.debug ? true : false, //根据服务端来控制是否开启调试模式
  49. appId: res.data.jsapi.appId,
  50. timestamp: res.data.jsapi.timestamp,
  51. nonceStr: res.data.jsapi.nonceStr,
  52. signature: res.data.jsapi.signature,
  53. jsApiList: res.data.jsapi.jsApiList,
  54. };
  55. jweixin.config(data);
  56. //分享的触发动作必须写再ready里面
  57. jweixin.ready(() => {
  58. //配置分享数据
  59. let shareData = {
  60. title: options.title || "", //分享的标题
  61. desc: options.desc || "", //分享的描述
  62. link: options.link, //分享的链接
  63. imgUrl: options.imageUrl || "", //分享的图片链接
  64. success(response) {
  65. //配置成功之后的回调(并不是分享成功之后的回调,这个地方是个坑,要注意下)
  66. console.log('user shared');
  67. },
  68. };
  69. //分享给朋友接口
  70. jweixin.updateAppMessageShareData(shareData);
  71. //分享到朋友圈接口
  72. jweixin.updateTimelineShareData(shareData);
  73. });
  74. } else {
  75. console.log(JSON.stringify(res));
  76. }
  77. };
  78. export default {
  79. initWeixinShareConfig
  80. }