Skip to content
On this page

useShare

Reactive Web Share API. The Browser provides features that can share content in text or file.

The share method has to be called following a user gesture like a button click. It can’t simply be called on page load for example. That’s in place to help prevent abuse.

Demo

Category
Last Changed
last month

Usage

import { useShare } from '@vueuse/core'

const { share, isSupported } = useShare()

function startShare() {
  share({
    title: 'Hello',
    text: 'Hello my friend!',
    url: location.href,
  })
}
import { useShare } from '@vueuse/core'

const { share, isSupported } = useShare()

function startShare() {
  share({
    title: 'Hello',
    text: 'Hello my friend!',
    url: location.href,
  })
}

Passing a source ref

You can pass a ref to it, changes from the source ref will be reflected to your sharing options.







 










import { ref } from 'vue'

const shareOptions = ref < ShareOptions > ({ text: 'foo' })
const { share, isSupported } = useShare(shareOptions)

shareOptions.value.text = 'bar'

share()
import { ref } from 'vue'

const shareOptions = ref < ShareOptions > ({ text: 'foo' })
const { share, isSupported } = useShare(shareOptions)

shareOptions.value.text = 'bar'

share()

Type Declarations

export interface UseShareOptions {
  title?: string
  files?: File[]
  text?: string
  url?: string
}
/**
 * Reactive Web Share API.
 *
 * @see https://vueuse.org/useShare
 * @param shareOptions
 * @param options
 */
export declare function useShare(
  shareOptions?: MaybeComputedRef<UseShareOptions>,
  options?: ConfigurableNavigator
): {
  isSupported: Ref<boolean>
  share: (overrideOptions?: MaybeComputedRef<UseShareOptions>) => Promise<void>
}
export declare type UseShareReturn = ReturnType<typeof useShare>
export interface UseShareOptions {
  title?: string
  files?: File[]
  text?: string
  url?: string
}
/**
 * Reactive Web Share API.
 *
 * @see https://vueuse.org/useShare
 * @param shareOptions
 * @param options
 */
export declare function useShare(
  shareOptions?: MaybeComputedRef<UseShareOptions>,
  options?: ConfigurableNavigator
): {
  isSupported: Ref<boolean>
  share: (overrideOptions?: MaybeComputedRef<UseShareOptions>) => Promise<void>
}
export declare type UseShareReturn = ReturnType<typeof useShare>

Source

SourceDemoDocs

Contributors

Anthony Fu
Antério Vieira
Jelf
Shinigami
João Eudes Lima

Changelog

No recent changes

Released under the MIT License.