更新记录
1.0.0(2025-12-07) 下载此版本
一个外部网页超链接组件,在小程序内复制url,在app内打开外部浏览器,在h5端打开新网页
平台兼容性
uni-app x(4.87)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ |
appx-link 外部网页超链接组件帮助文档
组件介绍
appx-link 是基于 uni-app-x 开发的跨端外部链接处理组件,针对不同运行端实现差异化交互逻辑:
- H5端:打开新浏览器标签页访问链接;
- App端:优先跳转自定义webview页面,降级唤起系统外部浏览器;
- 小程序端/其他端:复制链接到剪贴板并展示友好提示。 组件支持样式高度自定义、点击交互反馈,适配 uni-app-x 各端渲染规则,无类型警告、无未定义API报错。
组件属性(Props)
| 属性名 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| url | string | '' | 是 | 外部链接地址(建议以http/https开头) |
| text | string | '' | 否 | 链接显示文本,默认显示完整url |
| showIcon | boolean/string | true | 否 | 是否显示右侧箭头图标(字符串支持"true"/"false") |
| icon | string | '➡️' | 否 | 右侧图标内容(支持emoji、图标字体字符、文本) |
| iconSize | string/number | '14px' | 否 | 图标尺寸(数字类型自动拼接px,支持rpx等单位) |
| iconColor | string | '#1890FF' | 否 | 图标默认颜色(支持十六进制、rgb/rgba、色值名) |
| iconMargin | string/number | '4px' | 否 | 图标左侧外边距(数字类型自动拼接px) |
| textColor | string | '#1890FF' | 否 | 文本默认颜色 |
| textSize | string/number | '14px' | 否 | 文本字号(数字类型自动拼接px) |
| lineHeight | string/number | '20px' | 否 | 文本行高(数字类型自动拼接px) |
| activeColor | string | '#096DD9' | 否 | 点击态文本/图标颜色(交互反馈) |
| padding | string/number | '4px 8px' | 否 | 组件容器内边距(数字类型自动拼接px) |
| containerStyle | object/string | {} | 否 | 容器自定义样式(字符串需符合JSON格式,支持单引号替换) |
| textStyle | object/string | {} | 否 | 文本自定义样式 |
| iconStyle | object/string | {} | 否 | 图标自定义样式 |
| copyTips | string | '链接已复制,请前往浏览器打开' | 否 | 小程序/其他端复制链接成功提示语 |
| openFailTips | string | '打开浏览器失败,请手动复制链接访问' | 否 | App端唤起浏览器失败提示语 |
组件事件
| 事件名 | 触发时机 | 回调参数 |
|---|---|---|
| 无 | 组件无自定义事件,所有交互逻辑内置 | 无 |
基础使用示例
<template>
<view class="demo-page">
<!-- 基础用法 -->
<appx-link
url="https://www.uni-app.net.cn"
text="访问uni-app官方文档"
/>
</view>
</template>
<script lang="uts" setup>
// 无需额外逻辑,组件内置交互
</script>
自定义样式示例
<template>
<appx-link
url="https://www.github.com"
text="访问GitHub"
textColor="#6E5494"
activeColor="#553C9A"
icon="🔗"
iconColor="#6E5494"
:containerStyle="{
margin: '10rpx 0',
padding: '12rpx 16rpx',
backgroundColor: '#F5F5F5',
borderRadius: '8rpx'
}"
:textStyle="{ fontWeight: 'bold', fontSize: '15px' }"
/>
</template>
禁用图标示例
<template>
<appx-link
url="https://www.vuejs.org"
text="Vue官方文档(无图标)"
showIcon="false"
textColor="#4FC08D"
activeColor="#36B37E"
/>
</template>
自定义提示语示例
<template>
<appx-link
url="https://www.example.com"
text="自定义提示语示例"
copyTips="链接已复制,快去浏览器打开吧~"
openFailTips="抱歉,打开浏览器失败了,请手动复制链接"
/>
</template>
配套webview页面(App端可选)
若需在App端通过自定义webview打开链接,需创建 /pages/webview/webview.vue 页面:
<template>
<web-view :src="url"></web-view>
</template>
<script lang="uts" setup>
import { onLoad } from '@dcloudio/uni-app';
const url = ref('');
onLoad((options) => {
if (options.url) {
url.value = decodeURIComponent(options.url);
} else {
uni.showToast({ title: '链接地址无效', icon: 'none' });
uni.navigateBack();
}
});
</script>
<style scoped>
web-view {
width: 100%;
height: 100vh;
}
</style>
多端表现说明
| 运行端 | 交互逻辑 | 注意事项 |
|---|---|---|
| H5 | 点击后通过window.open打开新标签页 |
部分浏览器可能拦截弹窗,需用户允许;仅在用户主动点击时生效 |
| App(iOS/Android) | 1. 优先跳转自定义webview页面; 2. 无webview则唤起系统外部浏览器; 3. 浏览器唤起失败则降级复制链接 |
需确保App模块中启用runtime权限;自定义webview页面需配置路由 |
| 小程序(微信/支付宝等) | 点击后复制链接到剪贴板,显示提示语 | 小程序开发者工具需开启“不校验合法域名”(仅测试用);正式环境需配置业务域名 |
| 其他端 | 统一执行复制链接逻辑 | - |
注意事项
- 链接合法性:建议传入以
http://或https://开头的完整链接,组件未内置链接校验,可在父组件补充; - 样式解析:自定义样式传入字符串时,需保证格式接近JSON(组件会自动替换单引号为双引号),推荐优先传对象格式;
- 单位适配:尺寸类属性(如
iconSize)传入数字时自动拼接px,如需rpx需传入字符串(如'24rpx'); - plus API防护:组件已内置
plus存在性检测,H5/小程序端访问不会报错; - 兼容性:适配 uni-app-x 所有官方支持的运行端,无类型警告、无未定义API报错。

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 5
赞赏 0
下载 11867577
赞赏 1818
赞赏
京公网安备:11010802035340号