Sto cercando di creare un'estensione di Chrome che potrebbe (ad esempio) collegarsi a Google Drive, inserire un elemento DOM da qualche parte (ad esempio il "riquadro attività") e visualizzare alcune informazioni aggiuntive quando l'utente seleziona un file.Listener di eventi UI frontend di Google Drive
Presumibilmente Google Drive utilizza un tipo di modello di interfaccia utente basato su eventi, ad es. "quando l'utente fa clic sull'immagine di anteprima per questo file, carica i dettagli di" Attività "per quel file e li visualizza nel riquadro. Tuttavia, sembra che nulla di tutto ciò sia documentato da nessuna parte (e ovviamente Google ne offusca il Javascript sul lato client) .
c'è una sorta di API pubblica per questi eventi che posso collegare in per eseguire i callback Qualcosa come:?
googleDriveUi.on("fileSelect", function(file) {
alert("You have selected " + file.filename);
});
mi rendo conto che potrei ottenere lo stesso risultato mediante l'attuazione di il mio frontend dell'interfaccia utente e quindi l'aggancio nel Google Drive backend API. Non voglio davvero farlo se è possibile evitarlo: l'interfaccia utente di Google Drive è già abbastanza buona, quindi non è necessario reinventare la ruota.
Un'alternativa sarebbe ascoltare gli eventi di richiesta web. Ad esempio, vedo che quando viene fatto clic su un file in Drive, viene effettuata una richiesta a http: // {google} /appsactivity/v1.1internal/activities? {Etcetc}. Un'estensione può probabilmente ascoltare le richieste fatte a questo URL - ma presumibilmente Google potrebbe cambiare l'endpoint della richiesta specifica in qualsiasi momento, quindi questa sarebbe una soluzione piuttosto traballante.
Qualsiasi altro pensiero sarebbe apprezzato.
quali informazioni è necessario prendere che Drive non sta già fornendo? –
Idealmente potrei tutti i metadati disponibili - ID di file, nomi di file, dimensioni, elenchi di attività, tutto. Il mio approccio ad interim è ascoltare gli eventi click sugli elementi con l'attributo [data-id] (dove il valore dell'attributo è l'ID del file), quindi utilizzare quell'ID per recuperare il file tramite la chiamata API al back Drive. fine. Il problema con questo approccio è che (1) non è documentato, quindi Google potrebbe smettere di usare [data-id] che potrebbe interrompere la mia estensione, e (2) funziona solo per ID file, ovvero non posso accedere ad altri metadati senza fare un'altra chiamata API (anche se questo non è un problema enorme). –