搜索

查看: 3170|回复: 11

[JavaScript] uni-app打开外部链接方式总结(h5和app)

[复制链接]
发表于 2023-5-4 11:48:23 | 显示全部楼层 |阅读模式
Editor 2023-5-4 11:48:23 3170 11 看全部
目录
  • 问题描述
  • 方案1
  • 方案2
  • 方案3
  • 方案4
  • 总结
    问题描述
    在应用中打开一个外部的html页面,即完整http链接的页面。h5通过window.open或是内嵌iframe基本都没有问题,本文主要针对app端的方法进行汇总,不涉及到小程序端。

    方案1
    使用uni-app的扩展组件 uni-link,使用参考文档uni-app官网
    该组件的行为是在app内打开外部浏览器,在h5打开新网页。

    方案2
    方案1app端打开外部浏览器,在使用体验上会有一种割裂感
    查看uni-link的源码,发现app端调用的是plus.runtime.openURL方法,
    可以在这个基础上进行优化,使用plus.runtime.openWeb替代app打开,这个方法会新开内置窗口打开页面,而且自带标题栏和返回,安卓端的隐私协议文件(androidPrivacy.json)的内容中a标签调用的即是这个方法
    void plus.runtime.openWeb(url);
    参数:url: ( String ) 必选 要打开的URL地址 ,仅支持http/https地址
    注意标题会读取载入html的title属性,如果没有的话标题显示为空

    方案3
    使用app-plus的webview模块api进行管理,
    plus.webview.open( url, id, styles, aniShow, duration, showedCB )或是plus.webview.create( url, id, styles, extras );
    这两个方法都支持通过style属性控制标题栏的样式,如果不设置标题文字,则读取加载的html的title属性,具体参数支持比较多,参考文档​​​​​​​​​​​​​​HTML5+ API Reference
    const wv = plus.webview.open(query.src, 'webview', {
            titleNView: {
              autoBackButton: true,
              titleColor: '#fff',
              backgroundColor: '#0045c4',
              titleAlign: 'center',
            },
          })
          // wv.show()
    该方案存在问题是返回操作在ios和安卓上不太一致,还可能会清除uni-app的页面路由管理​​​​​​​,不建议使用

    方案4
    使用uni-app的webview组件进行加载,及新建一个路由页面,/pages/webview,内容只放一个webview

      
       
       
       
       
       
       
      

    webview组件在h5中也是使用iframe实现,但是dom嵌套层级太多,不方便控制宽高,所以这里就直接按条件编译,在h5中用iframe。uni-app官方也是推荐h5中使用iframe。
    app的标题栏需要通过pages.json来控制,如下参考,具体文档见​​​​​​​uni-app官网
    {
        "path": "webview/index",
        "style": {
          "app-plus": {
            "titleNView": {
              "backgroundColor": "#0045c4",
              "titleAlign": "center",
              "titleSize": "16px",
              "backButton": {
                "fontSize": "20px",
                "fontWeight": "bold"
              }
            }
          }
        }
      }
    这里titleNView的设置和方案3api的参数基本一致

    总结
    到此这篇关于uni-app打开外部链接方式(h5和app)的文章就介绍到这了,更多相关uni-app打开外部链接内容请搜索知鸟论坛以前的文章或继续浏览下面的相关文章希望大家以后多多支持知鸟论坛!
  • 发表于 2023-6-28 21:21:38 | 显示全部楼层
    贰十岁装成熟装s 2023-6-28 21:21:38 看全部
    其实我一直觉得楼主的品味不错!呵呵!知鸟论坛太棒了!
    发表于 2023-6-28 23:34:50 | 显示全部楼层
    知足常乐77 2023-6-28 23:34:50 看全部
    既然你诚信诚意的推荐了,那我就勉为其难的看看吧!知鸟论坛不走平凡路。
    发表于 2023-6-29 15:16:27 | 显示全部楼层
    无人岛屿颈 2023-6-29 15:16:27 看全部
    论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛。
    发表于 2023-6-29 22:54:57 | 显示全部楼层
    墙和鸡蛋 2023-6-29 22:54:57 看全部
    论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛。
    发表于 2023-6-29 23:26:05 | 显示全部楼层
    向往草原403 2023-6-29 23:26:05 看全部
    楼主发贴辛苦了,谢谢楼主分享!我觉得知鸟论坛是注册对了!
    发表于 2023-6-30 02:20:45 | 显示全部楼层
    123456809 2023-6-30 02:20:45 看全部
    这东西我收了!谢谢楼主!知鸟论坛真好!
    发表于 2023-6-30 09:37:15 | 显示全部楼层
    永远就三年疗 2023-6-30 09:37:15 看全部
    其实我一直觉得楼主的品味不错!呵呵!知鸟论坛太棒了!
    发表于 2023-6-30 09:48:33 | 显示全部楼层
    尘埃416 2023-6-30 09:48:33 看全部
    论坛不能没有像楼主这样的人才啊!我会一直支持知鸟论坛。
    发表于 2023-6-30 19:40:18 | 显示全部楼层
    胡37 2023-6-30 19:40:18 看全部
    既然你诚信诚意的推荐了,那我就勉为其难的看看吧!知鸟论坛不走平凡路。
    • 您可能感兴趣
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则 返回列表

    RSS订阅| 小黑屋| 知鸟论坛 |网站地图
    本站资源来自互联网用户收集发布,如有侵权请邮件联系处理。 联系邮箱E-mail:zniao@foxmail.com
    快速回复 返回顶部 返回列表