<script language="JavaScript">
openShare = async () => {
if (navigator && navigator.share) {
await shareNative();
} else {
await shareFallback();
}
};
</script>
function async shareNative() {
await navigator.share({
text: 'How to implement the Web Share API and a fallback',
url: 'https://deckdeckgo.com',
});
}
<script type="module"
src="https://unpkg.com/web-social-share@latest/dist/websocialshare/websocialshare.esm.js"></script>
<script nomodule
src="https://unpkg.com/web-social-share@latest/dist/websocialshare/websocialshare.js"></script>
<script src="https://unpkg.com/ionicons@latest/dist/ionicons.js"></script>
<web-social-share show="false">
<ion-icon name="logo-twitter" ariaLabel="Twitter" slot="twitter"
style="color: #00aced;">
</ion-icon>
<ion-icon name="mail" slot="email" ariaLabel="Email"
style="color: #ff8ea3;">
</ion-icon>
<ion-icon name="logo-whatsapp" ariaLabel="WhatsApp"
slot="whatsapp"
style="color: #25D366;">
</ion-icon>
</web-social-share>
function shareFallback() {
const webSocialShare =
document.querySelector('web-social-share');
const shareUrl = 'https://deckdeckgo.com';
const share = {
displayNames: true,
config: [{
twitter: {
socialShareUrl: shareUrl,
socialSharePopupWidth: 300,
socialSharePopupHeight: 400
}
},{
email: {
socialShareBody: shareUrl
}
}, {
whatsapp: {
socialShareUrl: shareUrl
}
}]
};
webSocialShare.share = share;
webSocialShare.show = true;
}
<button onClick="openShare()">Share</button>