uni-app跳转外部链接方式汇总--超全

一、简介

在开发移动端应用程序(APP)的过程中,我们经常需要展示来自外部HTTP/HTTPS链接的页面内容。这些外部页面可能包含用户协议、新闻资讯、产品详情等信息,对于提升用户体验和增强应用功能至关重要。然而,与在Web环境中通过window.open或内嵌iframe轻松展示外部链接不同,APP端面临着更多的技术挑战和更好的交互体验限制。

接下来介绍常用的几种外部链接打开方式。

二、打开方式

1.plus.runtime.openWeb

1.1 是什么

plus.runtime.openWeb 是一个在HTML5+规范中定义的API,它允许在移动应用(如使用HTML5+开发的Hybrid应用)中打开一个新的Web页面。这个API通常是由DCloud公司的5+ App(HBuilderX的配套运行环境)或类似框架提供的,用于在原生应用环境中嵌入和展示Web内容。

1.2 怎么用

plus.runtime.openWeb("url地址");

2.plus.runtime.openURL

2.1 是什么

plus.runtime.openURL 是HTML5+ API中的一个方法,它允许在移动应用中打开指定的URL地址。这个方法通常用于在Hybrid应用(如使用HBuilderX或DCloud公司的5+ App框架开发的应用)中,从应用内部打开外部链接,如网页或第三方应用的授权页面。

1.2 怎么用

plus.runtime.openURL("url地址");

1.3 openURL和openWeb的区别

plus.runtime.openURLplus.runtime.openWeb 均可实现跳转APP跳转外部链接的功能。两者的主要区别见下表:

|---------|---------------------------------------------|--------------------------------------------|
| | plus.runtime.openWeb | plus.runtime.openURL |
| 1.打开方式 | 在应用内部打开一个新的Web页面 | 调用系统默认的浏览器打开URL |
| 2.自定义程度 | 更多的自定义选项,如设置窗口标题、大小、位置等 | 自定义程度相对较低,因为它主要依赖于系统浏览器的默认行为 |
| 3.使用场景 | 更适合于需要在应用内部展示网页内容的场景,如应用内的文档、用户指南或嵌入式网页广告等。 | 更适合于需要跳转到外部网页或第三方应用的场景,如打开支付页面或跳转到其他相关网站等。 |
| 4.安全性 | 安全性较低,需注意防止跨站脚本攻击和跨站请求伪造等。 | 安全性较高,仍需确保URL的合法性和安全性。 |

1.4 openURL和openWeb的实现效果

3.web-view组件

3.1.简要介绍

web-view组件是一个在小程序中用于嵌入网页的容器,它允许开发者在小程序内展示外部网页内容,从而丰富小程序的功能,并为用户提供更加多样化的浏览体验。

3.2.使用步骤

(1)在代码目录pages下面建立文件夹webview,并新增webview.vue文件,webview.vue中为使用web-view跳转外部链接的方法。

<template>
  <view>
    <web-view :src="extraUrl"></web-view>
  </view>
</template>
 
<script setup>
import {
		onLoad
	} from '@dcloudio/uni-app';
	import {
		ref
	} from 'vue';

const extraUrl = ref('')

onLoad((val) => {
  extraUrl.value = val.url
})
</script>

(2)在路由文件pages.json中添加webview的路由。

// 外部链接跳转
		{
			"path": "pages/webview/webview",
			"style": {
			  "navigationStyle": "custom",
			  "app-plus": {
				"bounce": "none" // 将回弹属性关掉
			  }
			}
		}

(3)在需要跳转外部链接的页面中使用,配合uni.navigateTo实现外部链接的成功跳转。

// 点击跳转到外部
	const toPath = (path) => {
		uni.navigateTo({
		   url: `/pages/webview/webview?url=${path}`,
		});
	};

3.3 注意事项

需要说明的是:

(1)使用微信小程序或APP均可使用该方式,该方式是在应用内容打开外部链接;

(2)建议优先使用HTTPS协议,并避免在链接中带有中文字符(在iOS中可能会有打开白屏的问题)。

4.uni-link跳转

4.1简要介绍

uni-link是uni-app的一个外部网页超链接组件,通过在小程序内复制url,在app内打开外部浏览器,在h5端打开新网页,以实现打开外部链接的方式。

4.2使用方式

<uni-link href="https://uniapp.dcloud.io/" text="https://uniapp.dcloud.io/"></uni-link>

4.3api参数说明

5.uview-plus跳转外部链接

5.1简要介绍

uview-plus是uni-app生态专用的UI框架,在uview-plus中通常使用up-link的方式进行外部链接的跳转实现,在APP中通常是打开系统默认浏览器的方式打开外部链接。

5.2 使用方式

<up-link href="https://uviewui.com/" text="打开uview-plus UI文档"></up-link>

5.3api参数说明

5.4 补充介绍

uview-plus中的up-text也可实现外部超链接的跳转,仅需设置mode="link"即可,但该种方式不支持字体颜色等样式修改,故不推荐使用。

<up-text mode="link" text="Go to uview-plus docs" href="https://www.uviewui.com" ></up-text>

三、补充说明

在uni-app中实现外部链接跳转时,方法多样,既可以选择在应用内直接打开以提升交互连贯性,也可以利用系统默认浏览器打开以享受更广泛的兼容性。具体选择哪种方式,应基于实际需求及为用户提供更佳体验的原则进行权衡。

相关推荐
Fly_hao.belief44 分钟前
ES6 模块化语法
前端·ecmascript·es6
Fly_hao.belief1 小时前
Vue非单文件组件
前端·javascript·vue.js
guokanglun1 小时前
npm镜像查看和修改
前端·npm·node.js
haodanzj1 小时前
用axios和fetch分别封装请求
java·前端·javascript
前端青山1 小时前
React 中的Props特性及其应用
前端·javascript·react.js·前端框架
赣州云智科技的技术铺子1 小时前
uni app下开发AI运动小程序解决方案
uni-app·ai运动·ai运动识别·运动识别引擎·uni ai运动解决方案·ai运动会·ai体测
demo007x1 小时前
「创意故事卡片创作助手」扣子模板使用教程
前端·后端·程序员
yqcoder1 小时前
reactflow 中 useReactFlow 模块作用
前端·javascript
I will.8742 小时前
React中常用的钩子
前端·javascript·react.js