2***@qq.com
2***@qq.com
  • 发布:2019-06-18 04:01
  • 更新:2022-06-28 09:54
  • 阅读:16056

uniapp通过webview打开第三方网页不能back返回怎么解决

分类:uni-app

无论我打开哪个网页都是这样,包括百度这样网站,只要通过webview进去了,回退键就失效了,从百度只搜索到mui怎么解决这个问题,uniapp没有,特来咨询

<template>  
    <view>  
        <web-view :webview-styles="webviewStyles" :src="src" @message="onMessage"></web-view>  
    </view>  
</template>  

<script>  
export default {  
    onLoad(option) {  
        this.src = option.url == null ? '' : option.url;  
        uni.setNavigationBarTitle({  
            title: option.title == null ? '外部浏览器' : option.title  
        });  
    },  
    data() {  
        return {  
            src: '',  
            webviewStyles: {  
                progress: {  
                    color: '#000'  
                }  
            }  
        };  
    },  
    methods: {  
        back(){  
            uni.navigateBack({  
                delta:3  
            });  
        }  
    },  
    onBackPress(options) {  
        if (options.from === 'navigateBack') {    
            return false;    
        }    
        this.back();    
        return true;    
    }  
};  
</script>  

<style></style>  
2019-06-18 04:01 负责人:无 分享
已邀请:
4***@qq.com

4***@qq.com

mui.back = function(){
uni.navigateBack();
};

在引入的HTML中引入MUI.JS后重写back事件

6***@qq.com

6***@qq.com

webview里面可以调用 uni-app的一些api, 具体实现细节,webview那块的文档上有

<!-- 微信 JS-SDK 如果不需要兼容微信小程序,则无需引用此 JS 文件。 -->
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.4.0.js"></script>
<!-- 支付宝的 JS-SDK 防止 404 需要动态加载,如果不需要兼容支付宝小程序,则无需引用此 JS 文件。 -->
<script type="text/javascript">
if (navigator.userAgent.indexOf('AlipayClient') > -1) {
document.writeln('<script src="https://appx/web-view.min.js"' + '>' + '<' + '/' + 'script>');
}
</script>
<!-- 百度 JS-SDK 如果不需要兼容百度小程序,则无需引用此 JS 文件。 -->
<script type="text/javascript" src="https://b.bdstatic.com/searchbox/icms/searchbox/js/swan-1.7.0.js"></script>
<!-- uni 的 SDK -->
<script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.1.js"></script>

  • 2***@qq.com (作者)

    可是跳转的网页不是我的,我没法修改人家的网页

    2019-06-18 13:06

  • 6***@qq.com

    回复 2***@qq.com: app端可以通过 evalJS 注入js来解决

    2019-06-18 13:37

  • sunny123

    请问解决了吗?我遇到了,求分享,谢谢

    2019-08-18 08:46

  • lbnzms

    回复 6***@qq.com: 怎么怎么实现的

    2022-05-10 11:50

祥子888

祥子888

解决了告诉我下 谢谢

MicroLong

MicroLong

请问解决了吗

  • j***@126.com

    https://www.i847.cn/article/4851.html

    2020-07-11 22:53

  • y***@wellview.com.cn

    回复 j***@126.com: webview内部确实可以跳转,不过返回不到原来的uni页面,这是啥情况呢

    2020-09-18 15:46

  • 7***@qq.com

    回复 y***@wellview.com.cn: 解决了吗?

    2023-07-19 15:07

zhanqi

zhanqi

请问解决了吗

  • 1***@163.com

    问题解决了嘛?

    2020-04-23 18:35

  • 7***@qq.com

    回复 1***@163.com: 请问解决了吗/

    2023-07-19 15:07

  • 2***@qq.com

    回复 7***@qq.com: 老哥,解决了吗

    2023-07-19 15:23

k***@gmail.com

k***@gmail.com

请问解决了吗

  • j***@126.com

    https://www.i847.cn/article/4851.html

    2020-07-11 22:53

近视的咸鱼

近视的咸鱼 - 咸鱼也要过得有意义

问题解决了吗,如果返回回来会不会丢失页面栈

anne_liuy

anne_liuy

请问具体怎么实现的

  • j***@126.com

    https://www.i847.cn/article/4851.html

    2020-07-11 22:53

j***@126.com

j***@126.com

onBackPress(e) {  
    this.$scope  
      .$getAppWebview()  
      .children()[0]  
      .back();  
    return true;  
  }

解决来源:https://www.i847.cn/article/4851.html

  • TheFront

    你这个根本不行,我这个能关闭this.$scope.$getAppWebview().children()[0].close(),但是会出现关闭白屏的情况。。

    2020-12-21 11:26

  • q***@qq.com

    回复 TheFront: 你把页面显示关了,可不白屏,你关他干啥

    2022-05-09 17:26

l***@163.com

l***@163.com

https://mp.csdn.net/mp_blog/creation/editor/123950821

4***@qq.com

4***@qq.com

已完美解决,有需要联系QQ450245869

b***@csmar.com

b***@csmar.com

可以自定义导航解决吧;类似于这种:

<view>  
    <u-navbar :fixed="true" :autoBack="false" @leftClick="goBack"></u-navbar>  
    <web-view :class="getClassList()" :src="thridLink"></web-view>  
</view>

在goBack()方法里写返回上一页的代码

  • 7***@qq.com

    请问解决了吗?自定义导航跳转到url之后,点击内容还是无法返回?

    2023-07-19 14:18

要回复问题请先登录注册