networkInformationHint.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import Vue from "vue";
  2. let ___networkInformationHintLastTime = Date.now();
  3. const sessionNoNetworkHint = "networkInformationHint-nohint";
  4. export default function networkInformationHint() {
  5. if (navigator.connection && navigator.connection.downlink) {
  6. if (navigator.connection.downlink < 1 || navigator.connection.rtt > 1000) {
  7. window._hmt.push([
  8. "_trackEvent",
  9. "网络状况不佳",
  10. "下载小于1Mb,延迟大于1000ms",
  11. ]);
  12. if (
  13. Date.now() - ___networkInformationHintLastTime > 3000 &&
  14. !sessionStorage.getItem(sessionNoNetworkHint)
  15. ) {
  16. Vue.prototype.$notify({
  17. showClose: true,
  18. duration: 2000,
  19. title: "当前网络状况不佳!",
  20. message: `当前网速:下载(${navigator.connection.downlink}Mb) 网络延时(${navigator.connection.rtt}ms) (点击此行可不再提示)`,
  21. type: "warning",
  22. onClick: () => {
  23. Vue.prototype
  24. .$alert("不在提示网络状况?", "提示", {
  25. confirmButtonText: "确定",
  26. cancelButtonText: "取消",
  27. })
  28. .then(() => {
  29. sessionStorage.setItem(sessionNoNetworkHint, true);
  30. });
  31. },
  32. });
  33. ___networkInformationHintLastTime = Date.now();
  34. }
  35. }
  36. }
  37. }