当前位置:首页 > 技术分享 > 正文内容

uniapp打开外链并在webview跳转到app内部页面

admin2年前 (2022-09-09)技术分享9918

可是打开后又无法返回,想了一下之后,新建了一个页面,在页面中插入web-view,要在


<template>

    <view>

        <web-view :src="url"></web-view>

    </view>

</template>

 

<script>

    export default {

        data() {

            return {

                url: ''

            }

        },

        onLoad(e) {

             // 获取传递过来的链接

            this.url = e.url

        }

    }

</script>


pages.json里面配置这个新页面


{

"path": "pages/index/webview",

"style": {

"navigationBarTitleText": "",

"navigationBarBackgroundColor": "#FFFFFF",

"navigationBarTextStyle": "black",

"navigationStyle": "custom"

}

}

点击跳转新页面,把url通过地址栏传参过去。


navToLink(){

uni.navigateTo({

url: `/pages/index/webview?url=${this.url}`

})

}

然后就完美的打开了,并且可以无缝隙返回。


uniapp中webview跳转到app内部页面

官方文档:

https://ask.dcloud.net.cn/article/35083


第一步:在webview加载的页面引入Js

<!-- uni 的 SDK,必须引用。 -->
<script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script>

还有一个微信小程序的,如果不考虑微信小程序,则无需引入微信的 JS-SDK。


第二步:注意调用时机
在引用依赖的文件后,需要在 HTML 中监听 UniAppJSBridgeReady 事件触发后,才能安全调用 uni 的 API。

document.addEventListener('UniAppJSBridgeReady', function() {  
    uni.getEnv(function(res) {  
        console.log('当前环境:' + JSON.stringify(res));  
    });  
});

第三步:实际调用

支持调用所有的 uni 路由方法,可以实现从 HTML 重新跳转回应用内的页面。

在 UniAppJSBridgeReady 后,调用路由方法跳转到应用内的页面。

官方例子:

document.addEventListener('UniAppJSBridgeReady', function() {  
    document.querySelector('.btn-list').addEventListener('click', function(evt) {  
        var target = evt.target;  
        if (target.tagName === 'BUTTON') {  
            var action = target.getAttribute('data-action');  
            if(action === 'navigateTo') {  
                uni.navigateTo({  
                    url: '/pages/component/button/button'  
                });  
            }  
        }  
    });  
});

自己使用,需要传参:

//uniappwebview跳转到app内部页面
document.addEventListener('UniAppJSBridgeReady', function () {
    document.querySelector('.jump-uniapp').addEventListener('click', function (evt) {
        var target = evt.target;
        var articleId = target.getAttribute('articleId');
        var userName = target.getAttribute('userName');
        //if (target.tagName === 'BUTTON') {
            //var action = target.getAttribute('data-action');
            //if (action === 'navigateTo') {
                uni.navigateTo({
                    url: '/pages/details/articleDetailWebView?id=' + articleId + "&userName=" + userName
                });
            //}
        //}
    });
});

参数就用自定义属于绑定好即可,然后使用target.getAttribute('xx')这种方式获取即可。一次成功!

最精简的写法

<script type="text/javascript" src="https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js"></script>
<script>
document.addEventListener('UniAppJSBridgeReady', function() { 
    document.querySelector('.btn-list').addEventListener('click', function(evt) {
        uni.navigateTo({
            url: '/pages/index/index'
        });  
    });  
});
</script>
<button class="btn-list">查看详情</button>


扫描二维码推送至手机访问。

版权声明:本文由小刚刚技术博客发布,如需转载请注明出处。

本文链接:https://blog.bitefu.net/post/415.html

分享给朋友:

相关文章

360浏览器如何禁止切换到兼容模式[本地终极办法]

360浏览器如何禁止切换到兼容模式[本地终极办法]

浏览器内核控制标签meta说明背景介绍由于众所周知的原因,国内的主流浏览器都是双核浏览器:基于Webkit的内核用于常用网站的高速浏览,基于IE的内核主要用于部分网银、政府、办公系统等网站的正常使用。以360浏览器为例,我们优先通过Webk...

mysql update不支持set子查询更新 的解决办法

mysql update不支持set子查询更新 的解决办法

先看示例:SELECT uin,account,password,create_user_uin_tree FROM sys_user结果:表中的create_user_uin_tree标识该条记录由谁创建。创...

微软版Ghost Win10:FFU映像备份和还原

微软版Ghost Win10:FFU映像备份和还原

在日常的维护中,系统的备份和还原是大家经常需要操作的事情。虽然Windows 10已经提供很多的工具,如系统还原、WIM备份/还原,VHD备份等。不过这些工具大多是基于文件的备份/还原。我们以前经常的使用的Ghost则是基于扇区的备份/还原...

PIP 更换国内安装源linux/windows

pip国内的一些镜像  阿里云 http://mirrors.aliyun.com/pypi/simple/   中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/   豆瓣(...

Chrome 最全历史版本下载以及chromedriver下载

https://vikyd.github.io/download-chromium-history-version/#/ https://dl.lancdn.com/landian/soft/chrome/m/ chromedriver的版...

微软 Win11 安卓子系统已支持运行支付宝等 APK 应用(附手动侧载安装教程攻略)

微软 Win11 安卓子系统已支持运行支付宝等 APK 应用(附手动侧载安装教程攻略)

微软博客宣称,Windows 11 上 安卓子系统运行 Android  应用程序的第一个预览版现已提供给美国 Beta 频道的 Windows 内部人员。Windows 11 安卓子系统支...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。