Estoy tratando de crear una extensión de Chrome que lea y escriba en Google Docs en tiempo real para agregar sugerencias al texto de un usuario, similar a la extensión de Chrome Grammarly . He buscado y lo mejor que he encontrado es una biblioteca llamada GoogleDocsUtil ; sin embargo, después de la actualización de Google Docs a la representación basada en lienzo, ya no funciona. También encontré otras respuestas en Stack Overflow que dicen que una forma potencial de hacer esto es activando las pulsaciones de teclas con un evento, sin embargo, tampoco he podido hacer que funcione. La última forma que descubrí es mediante la integración con las propias API de Google; sin embargo, este enfoque es lento y no sería en tiempo real.
¿Cuál es la mejor manera de abordar este problema?
Es posible crear una integración con el lienzo anotado de Google Docs. Aunque requiere que el equipo de Google Docs incluya su aplicación en la lista blanca.
NOTA: Si no puede incluir su aplicación en la lista blanca, es posible que este enfoque no sea para usted.
Consulte lo siguiente sobre cómo obtener la lista blanca: https://stackoverflow.com/a/71321036/5432087
El enfoque que he usado se basa en la API de Mutation Observer en lugar de hacer clic en los oyentes. Consulte la API https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver .
La idea es escuchar los cambios en el DOM en lugar de escuchar las acciones del usuario. Se puede predecir dónde configurar los observadores de mutaciones, ya que el formato DOM es el mismo.
No puedo contarte la solución completa, ya que son un par de miles de líneas, por las funciones que he implementado, pero el uso de Mutation Observers me estaba rompiendo para resolver este problema sin usar la API de Google Docs. También puedo decirte que Mutation Observers demuestra ser realmente efectivo en tiempo real.
Otro enfoque sería integrarse con la API Rest de Google Docs. Consulte los documentos: https://developers.google.com/docs/api/reference/rest