• 关于uniapp嵌入iframe的问题


    关注 码龄 粉丝数 原力等级 -- 被采纳 被点赞 采纳率 月笙哥哥 2024-05-30 17:34 采纳率: 0% 浏览 1 首页/ 前端 / 关于uniapp嵌入iframe的问题 前端androiduni-app uniapp 嵌入iframe页面,打包成安卓包,侧滑iframe页面无法返回上一页 收起 写回答 好问题 0 提建议 追加酬金 关注问题 微信扫一扫 点击复制链接 分享 邀请回答 编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金 ¥ 0 (可追加 ¥500) ¥ 15¥ 20¥ 50¥ 100¥ 200 支付方式 扫码支付 二维码出错 点击刷新 支付金额 15 元 提供问题酬金的用户不参与问题酬金结算和分配 支付即为同意 《付费问题酬金结算规则》 结题 再想想 删除 再等等

    2条回答 默认 最新

    • 专家-赤兔[在线] 全栈领域优质创作者 2024-05-30 17:35
      关注

      引自免费微信小程序:皆我百晓生

      在 UniApp 中,当您遇到嵌入的 iframe 页面在 Android 打包后无法通过侧滑返回上一页的问题时,这可能是由于 Android 的硬件返回键和默认的侧滑手势冲突导致的。为了解决这个问题,您可以尝试以下步骤:

      1. 首先,在您的项目根目录下的 project.config.json 文件中,找到并添加以下配置:
      {
        "android": {
          "disableHardwareBack": false,
          "disableSwipeBack": true
        }
      }
      

      这样可以禁用 Android 的默认侧滑返回功能,同时保留物理返回键的功能。

      1. 如果您想要自定义侧滑返回的行为,可以在全局的 main.js 或 app.vue 文件中监听 uni.onSwipeBack 事件,并实现您自己的逻辑。例如,当用户从左侧向右滑动时,您可以调用 uni.navigateBack() 方法返回上一个页面。以下是示例代码:
      // 在 main.js 或 app.vue 文件中
      import { uni } from '@dcloudio/uni-app'
      
      uni.onSwipeBack(e => {
        if (e.direction === 'right') {
          uni.navigateBack({
            delta: 1 // 表示返回上一个页面
          })
        }
      })
      
      1. 确保在 iframe 中的页面也有正确的导航管理。如果您使用的是 Vue,确保在每个组件的生命周期钩子(如 beforeRouteLeave)中处理离开页面的逻辑,以便正确地更新路由堆栈。

      2. 如果您仍然遇到问题,检查一下 iframe 内部的页面是否有阻止默认滚动行为的 CSS 样式,比如设置了 overflow: hidden。如果有,可能会影响侧滑返回的效果。

      按照上述步骤操作后,应该可以解决在 Android 包中的 iframe 页面侧滑返回上一页的问题。注意,这些更改会影响到整个应用的侧滑返回行为,如果你只希望对特定页面生效,你可能需要在页面内的生命周期钩子中动态启用或禁用这些设置。

      展开全部

      评论 编辑记录
      月笙哥哥 2024-05-30 17:56

      谢谢您的解答,但是需求是要做iframe内部的回退,H5端是可以实现的,安卓端暂时没找到解决办法

      回复
    • 阿里嘎多学长 2024-05-30 17:35
      关注

      以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


      关于您提到的uniapp嵌入iframe页面在安卓打包后侧滑无法返回上一页的问题,根据搜索结果,我找到了一些可能的解决方案和参考资料。

      1. 使用web-view代替iframe: 在uniapp中,推荐使用组件来代替传统的

        其中:srcdoc="article_description"用于将后端返回的HTML内容直接嵌入到