Il semble avoir été obscurci depuis Chrome 61 pour Android a lancé pour la première fois son API de partage Web. En fait, il fournit un moyen de déclencher une bo?te de dialogue de partage native pour l'appareil (le bureau si vous utilisez Safari) lors du partage du contenu directement à partir d'un site Web ou d'une application Web (comme un lien ou une carte de contact).
Bien que les utilisateurs puissent déjà partager du contenu à partir des pages Web de manière native, ils doivent trouver l'option dans le menu du navigateur, et même alors, il n'y a aucun contr?le sur le contenu partagé. L'introduction de cette API permet aux développeurs d'ajouter des capacités de partage aux applications ou aux sites Web en tirant parti des capacités de partage de contenu natives sur les appareils utilisateur.
Cette méthode présente de nombreux avantages par rapport à la méthode traditionnelle:
- Les utilisateurs ont une gamme plus large d'options de partage de contenu que le nombre limité d'options que vous pourriez avoir dans votre implémentation DIY.
- En annulant des scripts tiers de diverses plateformes sociales, vous pouvez réduire le temps de chargement des pages.
- Vous n'avez pas besoin d'ajouter une série de boutons à différents sites de médias sociaux et e-mails. L'option de partage native de l'appareil est déclenchée avec un seul bouton.
- Les utilisateurs peuvent personnaliser leurs cibles partagées préférées sur leurs appareils sans se limiter à des options prédéfinies.
Instructions de support du navigateur
Avant d'entrer dans les détails du fonctionnement de l'API, résolvons le problème du support du navigateur. Pour être honnête, le support du navigateur n'est pas idéal à l'heure actuelle. Il ne fonctionne qu'avec Chrome pour Android et Safari (Desktop et iOS).
Ce navigateur prend en charge les données de Caniuse, qui contient plus de détails. Le nombre indique que le navigateur prend en charge cette fonctionnalité dans cette version et plus tard.
Bureau
PC mobile / tablette
Mais ne vous découragez pas, n'adoptez pas cette API sur votre site Web. Comme vous le verrez, la mise en ?uvre d'un repli vers un navigateur qui ne le prend pas en charge est très facile.
Certaines exigences pour l'utilisation de l'API
Avant de pouvoir adopter cette API sur votre propre projet Web, il y a deux choses à noter:
- Votre site Web doit être fourni via HTTPS. Pour le développement local, l'API fonctionne également lorsque votre site fonctionne sur localhost.
- Pour éviter les abus, l'API ne peut déclencher qu'en réponse à certaines actions des utilisateurs, telles que les événements de clic.
Exemple
Pour démontrer comment utiliser cette API, j'ai préparé une démo qui fonctionne essentiellement la même chose que mon site Web. Voici à quoi ?a ressemble:
Actuellement, après avoir cliqué sur le bouton Partager, une bo?te de dialogue appara?tra affichant certaines options pour partager le contenu. Voici la partie du code qui nous aide à y parvenir:
<code>shareButton.addEventListener('click', event => { shareDialog.classList.add('is-open'); });</code>
Passons à convertir cet exemple en utilisant l'API de partage Web. La première chose à faire est de vérifier si l'API est en effet prise en charge par le navigateur de l'utilisateur, comme indiqué ci-dessous:
<code>if (navigator.share) { // 支持Web 共享API } else { // 回退}</code>
L'utilisation d'une API de partage Web est aussi simple que d'appeler navigator.share()
et de passer un objet qui contient au moins l'un des champs suivants:
-
url
: une cha?ne représentant l'URL à partager. Il s'agit généralement d'une URL de document, mais pas nécessairement. Vous pouvez partager n'importe quelle URL via l'API de partage Web. -
title
: Une cha?ne représentant le titre à partager, généralementdocument.title
. -
text
: tout texte que vous souhaitez inclure.
Voici à quoi il ressemble dans l'application réelle:
<code>shareButton.addEventListener('click', event => { if (navigator.share) { navigator.share({ title: 'WebShare API Demo', url: 'https://codepen.io/ayoisaiah/pen/YbNazJ' }).then(() => { console.log('Thanks for sharing!'); }) .catch(console.error); } else { // 回退} });</code>
à ce stade, une fois le bouton de partage cliqué dans le navigateur pris en charge, le sélecteur natif remplira toutes les cibles possibles que les utilisateurs peuvent partager des données. L'objectif peut être une application de médias sociaux, un e-mail, une messagerie instantanée, des messages texte ou une autre cible partagée enregistrée.
L'API est basée sur la promesse, vous pouvez donc joindre la méthode .then()
pour afficher le message réussi partagé et utiliser .catch()
pour gérer l'erreur. Dans un scénario réel, vous souhaiterez peut-être utiliser l'extrait de code suivant pour obtenir le titre et l'URL de la page:
<code>const title = document.title; const url = document.querySelector('link[rel=canonical]') ? document.querySelector('link[rel=canonical]').href : document.location.href;</code>
Pour les URL, nous vérifions d'abord si la page a une URL canonique, et si oui, utilisons cette URL. Sinon, nous obtenons href
de document.location
.
C'est une bonne idée de fournir un secours
Dans les navigateurs qui ne prennent pas en charge l'API de partage Web, nous devons fournir un mécanisme de secours afin que les utilisateurs de ces navigateurs puissent toujours obtenir des options de partage.
Dans notre cas, nous avons un dialogue pop-up avec certaines options pour partager du contenu, et les boutons de notre démo ne sont pas réellement liés à n'importe où, car, eh bien, c'est juste une démo. Cependant, si vous voulez savoir comment créer votre propre lien pour partager une page Web sans script tiers, l'article d'Adam Coti est un excellent point de départ.
Ce que nous voulons faire, c'est afficher une bo?te de dialogue de secours pour les utilisateurs de navigateurs qui ne prennent pas en charge l'API de partage Web. C'est aussi simple que de déplacer le code qui ouvre une bo?te de dialogue partagée dans else
:
<code>shareButton.addEventListener('click', event => { if (navigator.share) { navigator.share({ title: 'WebShare API Demo', url: 'https://codepen.io/ayoisaiah/pen/YbNazJ' }).then(() => { console.log('Thanks for sharing!'); }) .catch(console.error); } else { shareDialog.classList.add('is-open'); } });</code>
Maintenant, peu importe le navigateur que l'utilisateur utilise, tous les utilisateurs sont couverts. Voici une comparaison de la fa?on dont le bouton de partage se comporte sur deux navigateurs mobiles, l'un prend en charge l'API de partage Web et l'autre ne le fait pas:
Essayez-le! Utilisez des navigateurs qui prennent en charge le partage Web et les navigateurs non pris en charge. Il devrait être similaire à la démonstration ci-dessus.
Résumer
Cela couvre presque toutes les bases que vous devez conna?tre sur l'API de partage Web. En y mettant en ?uvre sur votre site Web, les visiteurs peuvent plus facilement partager votre contenu via divers réseaux sociaux, contacts et autres applications natives.
Il convient également de noter que si votre application Web répond aux critères d'installation progressive de l'application Web et est ajoutée à l'écran d'accueil de l'utilisateur, vous pouvez l'ajouter en tant que cible partagée. Il s'agit d'une fonctionnalité que vous pouvez lire sur l'API Target de partage Web sur les développeurs Google.
Bien que la prise en charge du navigateur soit déchiquetée, les secours sont faciles à mettre en ?uvre, donc je ne pense pas qu'il y ait une raison pour laquelle plus de sites Web ne l'adoptent pas. Si vous souhaitez en savoir plus sur cette API, vous pouvez lire la spécification ici.
Avez-vous utilisé l'API de partage Web? Veuillez partager votre expérience dans les commentaires.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Il existe trois fa?ons de créer un rotateur de chargement CSS: 1. Utilisez le rotateur de base des frontières pour obtenir une animation simple via HTML et CSS; 2. Utilisez un rotateur personnalisé de plusieurs points pour atteindre l'effet de saut à travers différents temps de retard; 3. Ajoutez un rotateur dans le bouton et basculez les classes via JavaScript pour afficher l'état de chargement. Chaque approche souligne l'importance des détails de conception tels que la couleur, la taille, l'accessibilité et l'optimisation des performances pour améliorer l'expérience utilisateur.

Pour faire face à la compatibilité du navigateur CSS et aux problèmes de préfixe, vous devez comprendre les différences de prise en charge du navigateur et utiliser raisonnablement les préfixes des fournisseurs. 1. Comprendre les problèmes communs tels que Flexbox et le support de la grille, Position: Sticky Invalid et les performances d'animation sont différentes; 2. Vérifier l'état du support de la fonction de confirmation de Caniuse; 3. Utilisez correctement -webkit-, -moz-, -ms-, -o- et autres préfixes du fabricant; 4. Il est recommandé d'utiliser AutopRefixer pour ajouter automatiquement les préfixes; 5. Installez PostCSS et configurez le navigateur pour spécifier le navigateur cible; 6. Gérer automatiquement la compatibilité pendant la construction; 7. Les fonctionnalités de détection modernizr peuvent être utilisées pour les anciens projets; 8. Pas besoin de poursuivre la cohérence de tous les navigateurs,

HEMAINDIFFERENCESBetweendisplay: Inline, Block, Andinline-BlockInhtml / CSSareLayoutBehavior, SpaceUsage et StylingControl.1.InlineElementsflowWithText, Don'tStartNewLines, Ignorewidth / Height, AndonlyApplyhorizontalPadding / Marges - IdealForninetLetetStyLinSing

Utilisez l'attribut Clip-Path de CSS pour recadrer des éléments en formes personnalisées, telles que les triangles, les encoches circulaires, les polygones, etc., sans compter sur des images ou des SVG. Ses avantages incluent: 1. Prend en charge une variété de formes de base telles que le cercle, l'ellipse, le polygone, etc.; 2. Ajustement réactif et adaptable aux terminaux mobiles; 3. Facile à l'animation, et peut être combiné avec le survol ou le javascript pour obtenir des effets dynamiques; 4. Il n'affecte pas le flux de disposition et ne culte que la zone d'affichage. Les usages communs sont tels que le chemin de clip circulaire: cercle (50pxatcenter) et trame de clip Triangle: polygone (50% 0%, 100 0%, 0 0%). Avis

La définition du style de liens que vous avez visité peut améliorer l'expérience utilisateur, en particulier dans les sites Web à forte intensité de contenu pour aider les utilisateurs à mieux naviguer. 1. Utilisez CSS: Pseudo-classe visité pour définir le style du lien visité, tels que les changements de couleur; 2. Notez que le navigateur permet uniquement la modification de certains attributs en raison des restrictions de confidentialité; 3. La sélection des couleurs doit être coordonnée avec le style global pour éviter la brutalité; 4. Le terminal mobile peut ne pas afficher cet effet et il est recommandé de le combiner avec d'autres invites visuelles telles que les logos auxiliaires ic?nes.

Pour créer des images réactives à l'aide de CSS, elle peut être principalement réalisée grace aux méthodes suivantes: 1. Utilisez la largeur maximale: 100% et hauteur: Auto pour permettre à l'image de s'adapter à la largeur du conteneur tout en maintenant la proportion; 2. Utilisez les attributs SRCSET et tailles de HTML pour charger intelligemment les sources d'image adaptées à différents écrans; 3. Utilisez l'objet-ajustement et la position d'objet pour contr?ler le recadrage d'images et l'affichage de la mise au point. Ensemble, ces méthodes garantissent que les images sont présentées clairement et magnifiquement sur différents appareils.

Le choix des unités CSS dépend des exigences de conception et des exigences réactives. 1.PX est utilisé pour la taille fixe, adaptée à un contr?le précis mais au manque d'élasticité; 2.EM est une unité relative, qui est facilement causée par l'influence de l'élément parent, tandis que REM est plus stable en fonction de l'élément racine et convient à la mise à l'échelle globale; 3.VW / VH est basé sur la taille de la fenêtre, adaptée à la conception réactive, mais l'attention doit être accordée aux performances sous des écrans extrêmes; 4. Lors du choix, il doit être déterminé en fonction de la question de savoir si les ajustements réactifs, les relations de hiérarchie d'éléments et la dépendance de la fenêtre. Une utilisation raisonnable peut améliorer la flexibilité et la maintenance de la disposition.

Différents navigateurs ont des différences dans l'analyse CSS, ce qui entra?ne des effets d'affichage incohérents, y compris principalement la différence de style par défaut, la méthode de calcul du modèle de bo?te, le niveau de support Flexbox et la disposition de la grille et le comportement incohérent de certains attributs CSS. 1. Le traitement de style par défaut est incohérent. La solution consiste à utiliser cssreset ou normaliser.css pour unifier le style initial; 2. La méthode de calcul du modèle de bo?te de l'ancienne version de IE est différente. Il est recommandé d'utiliser la taille d'une bo?te: Border-Box de manière unifiée; 3. Flexbox et Grid fonctionnent différemment dans les cas de bord ou dans les anciennes versions. Plus de tests et utilisent Autoprefixer; 4. Certains comportements d'attribut CSS sont incohérents. Caniuse doit être consulté et rétrogradé.
