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
- Si le menu de partage ne s’affiche pas, vérifiez que https://lendershareapi.pages.dev
/LenderShareAPI.js. est accessible (pas de blocage par adblockers ou CORS). - Assurez-vous que le navigateur supporte
navigator.share(disponible sur Chrome, Safari mobile, Edge) ou que le DOM est modifiable pour le menu personnalisé. - Pour GWT, vérifiez que le module
gwt.xmlest correctement configuré et quemvn gwt:devmodeest lancé. - Pour Dart ou Kotlin/JS, assurez-vous que le code est compilé en JavaScript (
dart compile jsougradlew build) et servi via un serveur local. - En cas d’erreur, consultez la console du navigateur pour les messages d’erreur JavaScript.
Licence
MIT — Libre d’utilisation, de modification et de distribution.