当前位置:   article > 正文

uniapp引入uniapp打包的H5跳转H5以及H5返回app方法_uniapp 打包的h5跳转h5

uniapp 打包的h5跳转h5

  1. 在app项目添加webview文件夹添加gridWebview.vue文件。代码如下
  1. <template>
  2. <view>
  3. <web-view :src="src" @message="getMessage" ></web-view>
  4. </view>
  5. </template>
  6. <script>
  7. export default {
  8. data() {
  9. return {
  10. src: '',
  11. }
  12. },
  13. computed: {
  14. token() {
  15. return this.$store.state.login.token || ''
  16. },
  17. roles() {
  18. return this.$store.state.login.roles || ''
  19. },
  20. userInfo(){
  21. return this.$store.state.login.userInfo || ''
  22. }
  23. },
  24. onLoad(opt) {
  25. console.log(opt)
  26. //拼接所需参数
  27. this.title = opt.title
  28. this.src = opt.src
  29. + (opt.src.includes('?') ? '&' : '?')
  30. + (this.token.length>0 ? 'token=' + this.token : '')
  31. + (this.userInfo.phone.length>0 ?`&phone=${this.userInfo.phone}` :'' )
  32. + (this.userInfo.userId.length>0 ?`&userId=${this.userInfo.userId}` :'' )
  33. + (this.userInfo.username.length>0 ?`&username=${this.userInfo.username}` :'' )
  34. + (opt.data?`&data=${opt.data}` :'' )
  35. + (opt.cityid?`&cityid=${opt.cityid}` :'' )
  36. },
  37. onShow() {
  38. // #ifdef APP-PLUS
  39. 设置webview显示时顶部丢失问题
  40. var height = 0; //定义动态的高度变量,如高度为定值,可以直接写
  41. uni.getSystemInfo({
  42. //成功获取的回调函数,返回值为系统信息
  43. success: (sysinfo) => {
  44. height = sysinfo.windowHeight -
  45. 40; //自行修改,自己需要的高度 此处如底部有其他内容,可以直接---(-50)这种,如果不减,页面会下沉,看不到底部导航栏
  46. },
  47. complete: () => {}
  48. });
  49. var currentWebview = this.$scope.$getAppWebview(); //获取当前web-view
  50. setTimeout(function() {
  51. var wv = currentWebview.children()[0];
  52. wv.setStyle({ //设置web-view距离顶部的距离以及自己的高度,单位为px
  53. top: 40, //此处是距离顶部的高度,应该是你页面的头部
  54. height: height, //webview的高度
  55. scalable: false, //webview的页面是否可以缩放,双指放大缩小,
  56. })
  57. }, 500); //如页面初始化调用需要写延迟
  58. // #endif
  59. },
  60. methods: {
  61. customBack() {
  62. // 在Webview页面中调用uni.navigateBack()
  63. uni.navigateBack();
  64. },
  65. getMessage(event) { //在H5端使用通信返回App端
  66. console.log(event, '0000000000000000000000000')
  67. if (event.detail.data[0].action == 'uni-app') {
  68. uni.navigateBack();
  69. }
  70. }
  71. },
  72. }
  73. </script>

2. app跳转H5使用如下方法:

  1. //跳转到对应的webview页面并传入url和其他参数
  2. uni.navigateTo({
  3. url: item.url.startsWith('http') ? `/pages/webview/gridWebview?title=${item.name}&src=${item.url}` : item.url
  4. })

3.H5返回app使用如下方法:

app.vue页面需要引入uni.webview.1.5.2.js文件 (目前此方法只能在真机上返回,H5上目前点击无效)

<script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script> 
  1. onLaunch: function() {
  2. this.initScript()
  3. console.log('App Launch')
  4. },
  5. onShow: function() {
  6. console.log('App Show')
  7. },
  8. onHide: function() {
  9. console.log('App Hide')
  10. },
  11. methods: {
  12. initScript() {
  13. var script = document.createElement('script');
  14. script.type = "text/javascript";
  15. script.async = true;
  16. script.src = "./static/js/uni.webview.1.5.2.js";
  17. document.head.appendChild(script);
  18. console.log(wx, "wx");
  19. }
  20. }

在需要返回的页面添加返回方法:

  1. goBack() {
  2. console.log('0000000', uni, )
  3. uni.webView.postMessage({
  4. data: {
  5. action: 'uni-app', //可自己随意定义,需要与app中接收通信的方法对应
  6. }
  7. });
  8. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/519262
推荐阅读
相关标签
  

闽ICP备14008679号