# WebShare API
# Parameters
import { useShare } from "vue-composable";
useShare(data?);
| Parameters | Type | Required | Default | Description |
|---|---|---|---|---|
| data | NavigatorShareData | false | undefined | An object containing data to share. Info (opens new window) |
# State
The useShare function exposes the following reactive state:
import { useShare } from "vue-composable";
const { supported, shared, cancelled } = useShare();
| State | Type | Description |
|---|---|---|
| supported | Boolean | Is supported - compatibility table (opens new window) |
| shared | Ref<Boolean> | Has been shared |
| cancelled | Ref<Boolean> | Has been cancelled by the user |
# Methods
The useShare function exposes the following methods:
import { useShare } from "vue-composable";
const { share, canShare } = useShare();
| Signature | Description |
|---|---|
share | Shares data. Return Promise |
canShare | returns true or false |
# Example
Supported: false | |
Can't share | |
| Shared | false |
| Cancelled | false |
# Code
<template>
<div>
<table>
<tbody>
<tr>
<td colspan="2">
<p>
Supported:
<b>{{ supported }}</b>
</p>
</td>
</tr>
<tr>
<td>
<label for="title">Title</label>
</td>
<td>
<input name="title" v-model="data.title" />
</td>
</tr>
<tr>
<td>
<label for="text">Text</label>
</td>
<td>
<input name="text" v-model="data.text" />
</td>
</tr>
<tr>
<td>
<label for="url">URL</label>
</td>
<td>
<input name="url" v-model="data.url" />
</td>
</tr>
<tr>
<td>
<p v-if="canShare(data)">You can share</p>
<p v-else>Can't share</p>
</td>
<td>
<button @click="share(data)">Share</button>
</td>
</tr>
<tr>
<td>Shared</td>
<td>{{ shared }}</td>
</tr>
<tr>
<td>Cancelled</td>
<td>{{ cancelled }}</td>
</tr>
</tbody>
</table>
</div>
</template>
<script>
import { useShare } from "vue-composable";
import { defineComponent, reactive } from "@vue/composition-api";
export default defineComponent({
name: "share-example",
setup() {
const data = reactive({
url: "https://pikax.me/vue-composable",
text: "Built with ❤️",
title: "You need to use this, just amazing"
});
const { supported, share, canShare, shared, cancelled } = useShare();
return {
data,
supported,
share,
canShare,
shared,
cancelled
};
}
});
</script>