Der Tweet Button ist normalerweise:
%Vor%und hier kann ich einen Rückruf erhalten, wenn der Benutzer twittert:
%Vor%Was ich nicht verstehe: Wie gibt mir Twitter diesen Rückruf? Der Tweet wird in einem anderen Fenster und von einer anderen Domäne ausgeführt. Wie ist das möglich?
Was ich daraus entnehmen kann, ist Twitters eigene Implementierung von Web Intents , die eine Web-API ist, die lose auf Androids Intents-Funktionalität basiert. Es sieht so aus, als ob Twitter eine JavaScript-Implementierung von Web Intents verwendet (möglicherweise ähnlich wie diese ).
In diesem Szenario registriert Twitter JavaScript ein intent
mit dem Browser. Das intent
teilen Sie eine URL. Wenn der Benutzer auf den Tweet-Button klickt, wird die Aktivität intent
gestartet und ein neues Popup-Fenster wird angezeigt.
Der Benutzer klickt auf den Tweet-Button aus dem Popup-Fenster und der Browser sendet die Ereignisdaten an einen Rückruf zurück, der beim Starten der Aktivität angegeben wurde. Der Callback wird in widget.js
angegeben und Sie verknüpfen dieses Ereignis mit der Methode twttr.events.bind
.
Es gibt ein wirklich gutes Beispiel dafür, wie dies auf der JavaScript github Implementierung von WebIntents funktioniert.
Verwendung
Heute verwenden
Derzeit wird diese API von keinem Browser nativ unterstützt. Um dieses System zu benutzen Einfach den folgenden Code in Ihre Site einfügen:
%Vor%Wenn Browser dies nativ implementieren, verschiebt der Shim alle seine Funktionalität auf die native Schnittstelle.
Erklärung
So registrieren Sie Ihre Dienstanwendung, um mit dem Image umgehen zu können teilen Sie einfach ein intent-Tag.
%Vor%Dadurch wird die Fähigkeit der aktuellen Seite zum Teilen von Bildern registriert.
Aufruf
Um eine Client-Anwendung zu erstellen, die die Share-Funktionalität nutzen kann, ist so einfach wie mit dem folgenden Code:
%Vor%Service
Wenn ein Dienst über startActivity aufgerufen wird, wird das Objekt "intent" aktiviert Das Fenster wird mit den vom Client bereitgestellten Daten gefüllt.
%Vor%Das ist es.
Um Daten an den Client zu senden, der sie aufgerufen hat, ist es so einfach wie Aufruf von postResult () über die Absicht.
%Vor%
Das Beispiel ist offensichtlich etwas anders als die Twitter-Implementierung, aber der allgemeine Prozess ist der gleiche.
Hier sind einige andere Referenzen für die WebIntents-API:
Ich bin mir nicht genau sicher, was Sie hier tun, aber domainübergreifende Javascript-APIs werden mit jsonp: Cross-Origin Resource Sharing durchgeführt.
Ссылка
Bearbeiten 1: JSONP ist ein Ansatz für den Zugriff auf domänenübergreifende Dienste. Ein einfacher Ansatz für dieses Problem besteht darin, Round-Robin-Polling zu verwenden. Polling wird leider nicht skaliert, wenn Sie viele Kunden haben. Eine dauerhafte Verbindung über tcp-Sockets aufrecht zu erhalten und den Server PUSH neue Nachrichten an die abonnierten Clients zu senden, ist eine bessere Alternative zum klassischen Polling.
Obwohl ich WebSockets nicht verwendet habe, kann der Server die Client-Daten zurückgeben, wenn Round Robin nicht implementiert ist.
Tags und Links javascript jquery twitter callback