uni-app打开外部链接方式汇总(h5&app)

这篇具有很好参考价值的文章主要介绍了uni-app打开外部链接方式汇总(h5&app)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述

在应用中打开一个外部的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

<template>
  <view v-if="src">
    <!-- #ifdef H5 -->
    <iframe width="100%" height="100%" :src="src" :title="title" />
    <!-- #endif -->
    <!-- #ifndef H5 -->
    <web-view :webview-styles="wbStyles" :src="src" :fullscreen="false" />
    <!-- #endif -->
  </view>
</template>

<script>
export default {
  data() {
    return {
      title: '',
      src: '',
      wbStyles: {
        width: '100%',
        height: '100%',
      },
    }
  },
  onLoad(option) {
    this.title = option?.title
    this.src = option?.src
  },
}
</script>

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的参数基本一致文章来源地址https://www.toymoban.com/news/detail-789191.html

到了这里,关于uni-app打开外部链接方式汇总(h5&app)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • uni-app的优缺点;uniapp进行条件编译的两种方法;小程序端和H5的代表值

    目录 uni-app的优缺点 优点: 1.跨平台开发: 2.统一的开发语言: 3.高效的性能: 4.丰富的生态圈: 缺点: 1.平台差异性: 2.性能限制: 3.对新特性支持滞后: Uni-app条件编译 process.env.UNI_PLATFORM 变量: 使用 process.env.NODE_ENV 变量: Uni-app中的代表值 Uni-app 是一个跨平台的开发框架

    2024年02月08日
    浏览(34)
  • 微信小程序web-view嵌入uni-app H5页面,通过H5页面传参给小程序进行转发分享页面,并通过点击转发出来的卡片,定向打开对应H5路径

    index.wxml  index.js 在H5项目的App.vue页面获取参数实现自动跳转到对应页面,包括携带的参数值

    2024年02月12日
    浏览(35)
  • uni-app - 头像图片裁剪组件(支持多种裁剪,手势控制旋转或缩放、内外部控制图片移动、提供上传后端接口方案、头像图片美化)全端完美兼容 H5 App 小程序,最好用的图片上传后裁剪插件教程源代码

    网上的教程代码非常乱且都有 BUG 存在,非常难移植到自己的项目中,而且很难。 实现了 完美兼容 H5 App 小程序,选取手机本地相册或拍照,图片上传裁切内置多种方案,样式随便改, 本文代码干净整洁注释详细,您一键复制源码后参照示例几分钟就能完事, 如下图 真机测

    2024年02月17日
    浏览(41)
  • uni-app搭建h5项目

    一、 打开官方网站 https://uniapp.dcloud.net.cn/quickstart-cli.html 二、找到使用vue-cli命令行,按照文档上的步骤进行搭建 全局安装 vue-cli 搭建项目 可以根据命令行搭建,搭建vue2.0对应的是webpack, 也可以搭建vue3.0+vite,命令行下载不下来,直接访问高亮起来的 gitee 然后下载模板即可

    2024年02月22日
    浏览(50)
  • uni-app引用外部图标库(阿里矢量图)

    作为前端程序员,nui-app是必备的,但是有时候内置的图标,组件又不完全满足,这里就可以引进外部图标,这里引用的是阿里矢量图标 第一步,在项目目录中新建文件夹,如图 第二步,登上阿里矢量图官网,将自己需要的图片先加入购物车,再点击右上角购物车    第三部

    2024年02月14日
    浏览(28)
  • uni-app如何区分 app、h5、小程序代码; uni-app如何判断是android、ios、小程序

    uniapp是DCloud公司于2012年开始研发的能够一次代码开发,生成H5、小程序(微信、支付宝、百度、华为等)、APP等应用的技术的统称,开发工具是HBuilderX,功能非常强大,由此引申出许多技术社区与生态环境。 使用HBuilderX开发Uniapp程序的项目,用它生成多端应用,由于兼容各种

    2024年02月11日
    浏览(34)
  • 关于uni-app 外部系统联登遇到的坑

    由于鄙人用了uni-app的即时通讯,所以用户体系必须同步uni-app那边的。这些操作也必须由自己的服务器来完成,所以需要把uni-app那边的接口进行url化。 uni-app的文档地址:云对象(uni-id-co) | uniCloud 所用的接口为 POST /your-uni-id-co-path/externalRegister POST /your-uni-id-co-path/externalLogi

    2024年03月28日
    浏览(35)
  • uni-app滚动分页 兼容(App 小程序 H5)

    因为手机端本身屏幕空间不大 所以大家一般都会选择用滚动分页 首先 我在根目录下创建了一个 api目录 下面创建了一个bookApi.js 其中写了一个请求函数 getBookList 根据当前页 page 和 每页展示多少条 pageSize 获取数据 那么 我的组件代码是这样的 首先 我们肯定要引入bookApi.js中的

    2024年02月16日
    浏览(35)
  • H5向uni-app小程序传递参数

    1.script src=\\\"https://js.cdn.aliyun.dcloud.net.cn/dev/uni-app/uni.webview.1.5.2.js\\\"/script 本地下载包引入也可以。  2.传递参数。 3.接收参数。 @message=\\\"handleMessage\\\"   获取当前数据是一个数组,每次获取让数组长度-1就是你需要的数据。

    2024年02月13日
    浏览(36)
  • uni-app实现 app 小程序 手机端H5扫码功能

    首先 扫码这个功能小程序和App都是有现成的方法 但是H5是不行的 我们可以看这样一段代码 这里 我们用了条件编译 App和小程序中的代码是 一样的 他们都可以正常执行scanCode进行扫码 至于H5手机端界面 我用web-view套了个百度的链接进来 其实 大家可以参考我的文章 vue实现二维

    2024年02月11日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包