html5Utils.js 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. import base from '@/config/baseUrl';
  2. import store from '@/store';
  3. import $http from '@/config/requestConfig'
  4. import { getLocation, setShare } from '@/plugins/wxJsSDK';
  5. /**
  6. * APP内嵌网页 -- 安卓IOS交互
  7. */
  8. export const appMutual = (name, query = null, errCallback) => {
  9. if (/android/i.test(navigator.userAgent)) {
  10. if (window.shangChengView) {
  11. if (typeof(query) == "object") {
  12. query = JSON.stringify(query);
  13. }
  14. window.shangChengView[name](query);
  15. } else {
  16. errCallback && errCallback();
  17. }
  18. } else if (/ios|iphone|ipod|pad/i.test(navigator.userAgent)) {
  19. if (window.webkit) {
  20. window.webkit.messageHandlers[name].postMessage(query)
  21. } else {
  22. errCallback && errCallback();
  23. }
  24. }
  25. };
  26. /**
  27. * 获取url中的参数
  28. */
  29. export const getUrlData = () => {
  30. var strs;
  31. var url = window.location.href; //获取url中"?"符后的字串
  32. var theRequest = new Object();
  33. if (url.indexOf("?") != -1) {
  34. url = url.substr(url.indexOf("?"));
  35. var str = url.substr(1);
  36. strs = str.split("&");
  37. for (var i = 0; i < strs.length; i++) {
  38. var index = strs[i].indexOf("=");
  39. theRequest[strs[i].slice(0, index)] = unescape(strs[i].slice(index + 1, strs[i].length));
  40. }
  41. }
  42. return theRequest;
  43. }
  44. //公众号微信支付
  45. export const wxPublicPay = (payInfo, callback) => {
  46. $http.get("api/pay/v1/pay_public_wx", {
  47. orderNo: payInfo.orderNo
  48. }).then(data => {
  49. let wxConfigObj = {
  50. appId: data.appId,
  51. timeStamp: data.timeStamp,
  52. nonceStr: data.nonceStr,
  53. package: data.package,
  54. signType: data.signType,
  55. paySign: data.sign
  56. };
  57. function onBridgeReady() {
  58. window.WeixinJSBridge.invoke("getBrandWCPayRequest", wxConfigObj, function(
  59. res
  60. ) {
  61. if (res.err_msg == "get_brand_wcpay_request:ok") {
  62. callback && callback(res);
  63. } else // 使用以上方式判断前端返回,微信团队郑重提示:res.err_msg将在用户支付成功后返回 ok,但并不保证它绝对可靠。
  64. if (res.err_msg == "get_brand_wcpay_request:cancel") {
  65. // common.loadWarn('支付遇到问题,您取消了支付');
  66. } else
  67. if (res.err_msg == "get_brand_wcpay_request:fail") {
  68. // common.myConfirm('支付遇到问题,您可能需要重新登录', '', function () {
  69. // obj.wxLoginOAuth();
  70. // });
  71. }
  72. });
  73. }
  74. if (typeof window.WeixinJSBridge == "undefined") {
  75. if (document.addEventListener) {
  76. document.addEventListener("WeixinJSBridgeReady", onBridgeReady, false);
  77. } else if (document.attachEvent) {
  78. document.attachEvent("WeixinJSBridgeReady", onBridgeReady);
  79. document.attachEvent("onWeixinJSBridgeReady", onBridgeReady);
  80. }
  81. } else {
  82. onBridgeReady();
  83. }
  84. });
  85. };
  86. // 浏览器判断
  87. // export const getBrowser = () => {
  88. // let ua = navigator.userAgent.toLowerCase();
  89. // if (ua.match(/MicroMessenger/i) == "micromessenger") {
  90. // return "微信";
  91. // }
  92. // return "其他";
  93. // };
  94. // 获取地址信息(公众号获取 或 内嵌APP获取)
  95. export const getLatLonH5 = function(successCallback, errCallback) {
  96. if (getBrowser() == '微信') {
  97. getLocation().then(res => {
  98. successCallback(res);
  99. }, err => {
  100. console.log("位置信息错误", err);
  101. errCallback("位置信息获取失败");
  102. });
  103. } else {
  104. let clearTime = setTimeout(() => {
  105. errCallback("获取经纬度超时");
  106. }, 5000);
  107. window.getAppLatLon = function(res) {
  108. clearTimeout(clearTime);
  109. successCallback(res);
  110. }
  111. appMutual("getAppLatLon", true);
  112. }
  113. };
  114. // 公众号分享
  115. export const publicShareFun = function (info = {},callback) {
  116. if (getBrowser() == "微信") {
  117. let shareInfo = {
  118. title: info.shareTitle || info.title || base.share.title,
  119. desc: info.desc || info.shareContent || base.share.desc,
  120. imgUrl: info.imgUrl || info.shareImg || base.share.imgUrl,
  121. link: info.link || info.shareUrl || base.share.link,
  122. };
  123. setShare(shareInfo, callback);
  124. }
  125. }
  126. // export const h5Login = function(type = "judge", callback) {
  127. // // var getRequest = getUrlData();
  128. // if (getBrowser() == "微信") {
  129. // uni.reLaunch({
  130. // url: "/pages/login/login"
  131. // });
  132. // } else {
  133. // appMutual("jumpLogin", null, function() {
  134. // if (type == "force") {
  135. // uni.reLaunch({
  136. // url: "/pages/login/login"
  137. // });
  138. // }else{
  139. // uni.showModal({
  140. // title:"提示",
  141. // content:"您还未登录,请先登录~",
  142. // confirmText: "去登录",
  143. // cancelText: "再逛会",
  144. // success: (res) => {
  145. // if(res.confirm){
  146. // uni.reLaunch({
  147. // url: "/pages/login/login"
  148. // });
  149. // }
  150. // }
  151. // });
  152. // }
  153. // });
  154. // }
  155. // }