更新记录

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页面需配置路由
小程序(微信/支付宝等) 点击后复制链接到剪贴板,显示提示语 小程序开发者工具需开启“不校验合法域名”(仅测试用);正式环境需配置业务域名
其他端 统一执行复制链接逻辑 -

注意事项

  1. 链接合法性:建议传入以http://https://开头的完整链接,组件未内置链接校验,可在父组件补充;
  2. 样式解析:自定义样式传入字符串时,需保证格式接近JSON(组件会自动替换单引号为双引号),推荐优先传对象格式;
  3. 单位适配:尺寸类属性(如iconSize)传入数字时自动拼接px,如需rpx需传入字符串(如'24rpx');
  4. plus API防护:组件已内置plus存在性检测,H5/小程序端访问不会报错;
  5. 兼容性:适配 uni-app-x 所有官方支持的运行端,无类型警告、无未定义API报错。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。