1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <template>
- <view style="text-decoration:underline" :href="href" @click="openURL" :inWhiteList="inWhiteList">{{text}}</view>
- </template>
- <script>
- /**
- * @description u-link是一个外部网页超链接组件,在小程序内打开内部web-view组件或复制url,在app内打开外部浏览器,在h5端打开新网页
- * @property {String} href 点击后打开的外部网页url,小程序中必须以https://开头
- * @property {String} text 显示的文字
- * @property {Boolean} inWhiteList 是否在小程序白名单中,如果在的话,在小程序端会直接打开内置web-view,否则会只会复制url,提示在外部打开
- * @example * <u-link href="https://ext.dcloud.net.cn" text="https://ext.dcloud.net.cn" :inWhiteList="true"></u-link>
- */
- export default {
- name: 'u-link',
- props: {
- href: {
- type: String,
- default: ''
- },
- text: {
- type: String,
- default: ''
- },
- inWhiteList: {
- type: Boolean,
- default: false
- }
- },
- methods: {
- openURL() {
- // #ifdef APP-PLUS
- plus.runtime.openURL(this.href) //这里默认使用外部浏览器打开而不是内部web-view组件打开
- // #endif
- // #ifdef H5
- window.open(this.href)
- // #endif
- // #ifdef MP
- if (this.inWhiteList) { //如果在小程序的网址白名单中,会走内置webview打开,否则会复制网址提示在外部浏览器打开
- uni.navigateTo({
- url: '/pages/component/web-view/web-view?url=' + this.href
- });
- } else {
- uni.setClipboardData({
- data: this.href
- });
- uni.showModal({
- content: '本网址无法直接在小程序内打开。已自动复制网址,请在手机浏览器里粘贴该网址',
- showCancel: false
- });
- }
- // #endif
- }
- }
- }
- </script>
- <style>
- </style>
|