webViews.vue 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <template>
  2. <web-view
  3. :src="src">
  4. </web-view>
  5. </template>
  6. <script>
  7. import { getToken } from '@/utils/auth'
  8. import {server_url} from '@/utils/config.js'
  9. var wv;
  10. export default {
  11. data() {
  12. return {
  13. src: '',
  14. query: {},
  15. webviewServer: server_url,
  16. };
  17. },
  18. onLoad(query) {
  19. this.query = query
  20. this.initData(query)
  21. },
  22. onReady() {
  23. // #ifdef APP-PLUS
  24. var self = this;
  25. var currentWebview = this.$scope.$getAppWebview(); //此对象相当于html5plus里的plus.webview.currentWebview()。在uni-app里vue页面直接使用plus.webview.currentWebview()无效,非v3编译模式使用this.$mp.page.$getAppWebview()
  26. setTimeout(function () {
  27. wv = currentWebview.children()[0];
  28. wv.addEventListener(
  29. "progressChanged",
  30. function (e) {
  31. wv.canBack(function (e) {
  32. self.canBack = e.canBack;
  33. });
  34. },
  35. false
  36. );
  37. }, 500); //如果是页面初始化调用时,需要延时一下
  38. // #endif
  39. },
  40. // 设备上点击返回按钮时的处理
  41. onBackPress(e) {
  42. if (wv && this.canBack) {
  43. wv.back();
  44. } else {
  45. // 没有可返回的页面了, 可以做些其他的处理, 比如回首页等等
  46. }
  47. return true;
  48. },
  49. /* onNavigationBarButtonTap(e) {
  50. // 返回
  51. if (e.index === 0) {
  52. // #ifdef H5
  53. uni.navigateBack();
  54. // #endif
  55. // #ifdef APP-PLUS
  56. if (this.canBack) {
  57. wv.back();
  58. } else {
  59. // 没有可返回的页面了, 可以做些其他的处理, 比如回首页等等
  60. }
  61. // #endif
  62. }
  63. // 首页
  64. if (e.index === 1) {
  65. // 显示tabbar
  66. //uni.showTabBar({
  67. // animation: false
  68. //});
  69. uni.switchTab({
  70. url: '/pages/index/index'
  71. });
  72. }
  73. }, */
  74. watch: {
  75. authtoken: {
  76. immediate: true,
  77. deep: true,
  78. handler(newVal) {
  79. // console.log(newVal,'newValnewValnewVal')
  80. // this.initData(this.query)
  81. }
  82. }
  83. },
  84. computed: {
  85. token() {
  86. return this.$store.state.user.token
  87. }
  88. },
  89. methods: {
  90. initData(query) {
  91. let urlParams = ''
  92. for (let key in query) {
  93. if (key != 'token') {
  94. urlParams += `&${key}=${query[key]}`
  95. }
  96. }
  97. urlParams = urlParams.replace('&', '?')
  98. this.src = `${this.webviewServer}/mobile/?${urlParams}`
  99. },
  100. getLocation() {
  101. },
  102. scanCode() {
  103. }
  104. }
  105. }
  106. </script>
  107. <style lang="scss"></style>