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
Usage
js
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.
js
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
typescript
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
Contributors
Anthony Fu
Antério Vieira
Jelf
Shinigami
João Eudes Lima