小程序使用webview嵌套H5中使用iframe真机无法跳转 wx.miniProgram.navigateTo等失效问题

这篇具有很好参考价值的文章主要介绍了小程序使用webview嵌套H5中使用iframe真机无法跳转 wx.miniProgram.navigateTo等失效问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

小程序使用webview嵌套H5真机无法跳转 wx.miniProgram.getEnv、wx.miniProgram.navigateTo等失效无响应问题分享
原因分析:由于页面使用了iframe导致在子页面中真机无法准确获取页面运行环境(开发者工具中无影响);
解决方案:在调用方法前加一个 parent. 在父页面中调用方法即可正常运行;

wx.miniProgram.navigateTo完整流程:

1. 小程序端在app.json文件中,把需要跳转的文件路径添加进去

  "pages": [

    "pages/index/index",

    "pages/test/test",

    "pages/pay/pay"

  ]

2. H5页面端

(1) 引入jweixin-1.6.0.js
    <script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
(2) 原因分析:由于页面使用了iframe导致在子页面中真机无法准确获取页面运行环境(开发者工具中无影响);解决方案:在调用方法前加一个 parent. 在父页面中调用方法即可正常运行;parent.wx.miniProgram.navigateTo({
   url: url
});

完整示例代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>小程序内嵌webview</title>
    <style>
        .btn {
            font-size: 70px;
            color: red;
        }
    </style>
</head>
<body>
<div id="OpenWx"></div>
<h1>我是webview里的h5页面</h1>
<a id="desc" class="btn" onClick="jumpPay()">点击支付</a>

<script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
<script>
    console.log(location.href);

    let payOk = getQueryVariable("payOk");
    console.log("payOk", payOk)

    if(payOk){//支付成功
        document.getElementById('desc').innerText="支持成功"
        document.getElementById('desc').style.color="green"
    }else{
        document.getElementById('desc').innerText="点击支付"
    }

    //获取url里携带的参数
    function getQueryVariable(variable) {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i = 0; i < vars.length; i++) {
            var pair = vars[i].split("=");
            if (pair[0] == variable) {
                return pair[1];
            }
        }
        return (false);
    }
    
    function jumpPay() {
        let orderId = Date.now();//这里用当前时间戳做订单号(后面使用你自己真实的订单号)
        let money = 1;//订单总金额(单位分)
        let payData = {orderId: orderId, money: money};

        let payDataStr = JSON.stringify(payData);//因为要吧参数传递给小程序,所以这里需要转为字符串
        const url = '/pages/pay/pay';
        parent.wx.miniProgram.navigateTo({
            url: url
        });
        // console.log("点击了去支付", url)
        console.log("点击了去支付")
    }

</script>
</body>
</html>文章来源地址https://www.toymoban.com/news/detail-775717.html

到了这里,关于小程序使用webview嵌套H5中使用iframe真机无法跳转 wx.miniProgram.navigateTo等失效问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 小程序web-view中嵌套H5如何跳转其他小程序

    首先web-view中H5是无法跳转到其他小程序的 只能通过H5跳转回小程序,再让小程序跳转到其他小程序 H5跳转回小程序使用wx.miniProgram.navigateTo() 小程序跳转小程序使用wx.navigateToMiniProgram(),官方文档有示例,用法很简单,只需要传入appid,还有path(可选参数,不是必须的,不传则默认

    2024年02月08日
    浏览(34)
  • uniapp中微信小程序和H5相互跳转及传参(webview)

    技术栈:uniapp-H5+uniapp-微信小程序(vue3+vite2+ts) 前言:在单位做项目的时候碰到一个需求,需要从微信小程序跳转到H5页面,这两个端都是使用uniapp编写的,查资料后决定使用webview来嵌入完成,然后考虑到还可能有参数(数据)需要传递,所以实现后记录一下。ps:以下代码

    2024年02月09日
    浏览(27)
  • 微信小程序webview内嵌H5跳转页面后没有返回按钮完美解决方案

    简单的讲就是我们可以在小程序内放置一个web-view组件来链接我们的HTML页面了。 但是点击跳转页面的时候。页面左上角没有!!返回按钮!!导致回不去了,这不是搞笑的吗。 看了下其他的小程序,发现如果是两个小程序页面跳转的话,第二个页面的左上角是会有返回按钮

    2024年02月08日
    浏览(44)
  • h5|web页面嵌套iframe传参给cocosCreator

    目录 一、快速浏览 二、详细实现与项目代码 三、安全性评估——iframe 实现效果: 一、快速浏览 在h5页面中,使用JavaScript获取需要传递的参数,如下: 使用iframe嵌入cocosCreator游戏页面,同时将参数作为url的query string传递,如下: 在cocosCreator游戏页面中,使用JavaScript获取ur

    2024年02月02日
    浏览(28)
  • 踩坑vue中嵌套iframe项目,嵌套在iframe中的项目无法登录!

    解决方案原文 这个我试了下是谷歌浏览器做了限制,在edge上可以正常登录 我遇到这种情况主要是我的项目用的是cookie存储的登录状态。需要设置cookie的域名,使其在嵌入的网站和网站域名下都能访问cookie,但是我设置了还是没用。 我最终的 解决方式 是将cookie存储状态改成

    2023年04月26日
    浏览(39)
  • 利用webview 内嵌实现小程序,h5 ,app 页面跳转和数据通讯,附带实现pdf文件的预览(兼容ios和安卓)

    承载网页的容器。会自动铺满整个小程序页面, 个人类型的小程序暂不支持使用。 客户端 6.7.2 版本开始,navigationStyle: custom 对 web-view 组件无效 相关的属性说明:开放能力 / web-view (qq.com) 2.bindmessage 可以实现网页端和小程序之间通讯, 但只在特定时机触发 网页端向小程序

    2024年02月02日
    浏览(60)
  • iOS 16.4 之后真机与模拟器无法使用Safari调试H5页面问题

    背景 iOS 16.4之后用真机调试H5时候发现,Safari中开发模块下面无法调试页面 解决方案 在WKWebView中设置以下代码解决 然后再次调试就可以了

    2024年01月20日
    浏览(55)
  • uniapp嵌套webview,无法返回上一级?

    场景: 进入首页,自动跳转第三方应用 遇到问题 在设备上运行时,无法回退上一级,直接退出应用了; 预期:一级级的返回页面; 解决方式 个人想到临时解决方式,欢迎老铁们可以分享其他方式 进入首页 index ,不要先加载 web-view 新建页面,例 webview.vue 方式一 例:安卓

    2024年01月22日
    浏览(31)
  • Android与H5交互 -- 点击H5跳转到 Android原生 页面 ,webview与h5(js)交互

    Android与H5交互 app开发过程中,利用原生+h5模式来开发是比较常见的 下面案例演示的是:原生调起一个H5页面,然后H5点击跳转到原生 WebViewActivity页面 调用H5 ,点击H5链接 跳转到原生MainActivity页面 注意 别忘了 !-- 添加网络权限 -- 一、清单文件,增加的配置 data的数据就是H5

    2023年04月14日
    浏览(49)
  • uniapp开发小程序:使用webview 跳转外部链接

    ①先在自己uniapp项目pages.json中建一个页面webview.vue ②页面webview.vue中的全部代码如下: ③在需要操作的页面,通过点击事件触发跳转 tips:如果链接地址不是https的,可能会出现页面无法跳转的问题:需要通过一下步骤去配置一下: https://smartprogram.baidu.com/docs/develop/component/op

    2024年02月07日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包