LenderShareAPI

Présentation

LenderShareAPI est une bibliothèque JavaScript légère pour partager du contenu via l’API native navigator.share (sur les navigateurs compatibles) ou un menu de partage personnalisé incluant des plateformes comme WhatsApp, Facebook, Twitter, et plus encore. Conçue pour être simple à intégrer, elle fonctionne entièrement côté client et ne nécessite aucun backend.

Installation

Choisissez votre technologie front-end pour intégrer LenderShareAPI :


<script src="https://cdn.tailwindcss.com"></script>
<script src="https://lendershareapi.pages.dev/LenderShareAPI.js"></script>

  

JavaScript : Importez LenderShareAPI comme module ES et utilisez share.


document.getElementById('shareBtn').addEventListener('click', () => {
  LenderShareAPI.share({
    title: "Mon site",
    text: "Découvre cette superbe page !",
    url: "https://exemple.com",
    image: "logo.png" // facultatif
  });
});

    

TypeScript : Typage statique, formulaire HTML et import dynamique du module.


interface ShareData {
  title: string;
  text: string;
  url: string;
  image: "logo.png";
}

document.addEventListener('DOMContentLoaded', () => {
  const titleInput = document.getElementById('title') as HTMLInputElement;
  const textInput = document.getElementById('text') as HTMLInputElement;
  const urlInput = document.getElementById('url') as HTMLInputElement;
  const shareButton = document.getElementById('share') as HTMLButtonElement;

  shareButton.addEventListener('click', async () => {
    const { LenderShareAPI } = await import('https://lendershareapi.pages.dev/LenderShareAPI.js');
    LenderShareAPI.share({
      title: titleInput.value,
      text: textInput.value,
      url: urlInput.value,
      image: "logo.png"
    });
  });
});

    

Brython (Python) : Python dans le navigateur via Brython, import dynamique LenderShareAPI.


<script src="https://brython.info/src/brython.js"></script>
<script type="text/python">
from browser import document, window

def share():
    window.import('https://lendershareapi.pages.dev/LenderShareAPI.js').then(
        lambda module: module.LenderShareAPI.share({
            'title': document['title'].value,
            'text': document['text'].value,
            'url': document['url'].value,
            'image': 'logo.png'
        })
    )
</script>

    

GWT (Java) : Interface formulaire, JSNI pour importer LenderShareAPI et appeler share.


public class ShareEntryPoint implements EntryPoint {
    private native void share(String title, String text, String url) /*-{
        import('https://lendershareapi.pages.dev/LenderShareAPI.js').then(module => {
            module.LenderShareAPI.share({ title: title, text: text, url: url });
        });
    }-*/;

    public void onModuleLoad() {
        TextBox titleBox = new TextBox(); titleBox.setPlaceHolder("Titre");
        TextBox textBox = new TextBox(); textBox.setPlaceHolder("Message");
        TextBox urlBox = new TextBox(); urlBox.setPlaceHolder("URL");
        Button shareButton = new Button("Partager");
        VerticalPanel panel = new VerticalPanel();
        panel.add(titleBox); panel.add(textBox); panel.add(urlBox); panel.add(shareButton);
        RootPanel.get().add(panel);

        shareButton.addClickHandler(event -> {
            share(titleBox.getValue(), textBox.getValue(), urlBox.getValue());
        });
    }
}

    

Kotlin/JS : Formulaire HTML, interop JS et import dynamique LenderShareAPI.


import kotlinx.browser.document
import kotlinx.browser.window
import org.w3c.dom.HTMLInputElement
import kotlin.js.Promise

fun main() {
    val titleInput = document.createElement("input") as HTMLInputElement
    titleInput.placeholder = "Titre"
    val textInput = document.createElement("input") as HTMLInputElement
    textInput.placeholder = "Message"
    val urlInput = document.createElement("input") as HTMLInputElement
    urlInput.placeholder = "URL"
    val shareButton = document.createElement("button").apply { textContent = "Partager" }
    val div = document.createElement("div").apply { append(titleInput, textInput, urlInput, shareButton) }
    document.body?.append(div)

    shareButton.addEventListener("click", {
        window.dynamicImport("https://lendershareapi.pages.dev/LenderShareAPI.js").then { module ->
            module.LenderShareAPI.share(jsObject { title = titleInput.value; text = textInput.value; url = urlInput.value })
        }
    })
}

private external fun dynamicImport(url: String): Promise
private fun jsObject(init: dynamic.() -> Unit): dynamic {
    val obj = js("{}")
    init(obj)
    return obj
}

    

Dart Web : Formulaire HTML, import via dart:js et appel share.


import 'dart:html';
import 'dart:js';

void main() {
  var titleInput = InputElement()..placeholder = 'Titre';
  var textInput = InputElement()..placeholder = 'Message';
  var urlInput = InputElement()..placeholder = 'URL';
  var shareButton = ButtonElement()..text = 'Partager';
  document.body!.append(DivElement()..append(titleInput)..append(textInput)..append(urlInput)..append(shareButton));

  shareButton.onClick.listen((_) {
    context.callMethod('import', ['https://lendershareapi.pages.dev/LenderShareAPI.js']).then((module) {
      module['LenderShareAPI'].callMethod('share', [JsObject.jsify({'title': titleInput.value,'text': textInput.value,'url': urlInput.value})]);
    });
  });
}

    

Note : Tous les exemples appellent la bibliothèque LenderShareAPI directement via le CDN https://lendershareapi.pages.dev/LenderShareAPI.js.

Démo interactive



Options disponibles

Paramètre Type Description
title string Le titre du contenu à partager
text string Le message de description
url string Le lien à partager (par défaut : URL courante)

À propos du créateur

LenderShareAPI a été créé par Brayan Tematio, un développeur passionné par les technologies web et l’open-source. Avec une expertise en JavaScript et en développement front-end, Jean a conçu cette bibliothèque pour simplifier le partage de contenu sur le web. Vous pouvez suivre ses projets sur GitHub ou le contacter via LinkedIn.

Contribuez au projet ou signalez des problèmes sur le dépôt GitHub.

Dépannage

Licence

MIT — Libre d’utilisation, de modification et de distribution.