Ich habe ein Google-Blatt, das ein Skript enthält, das beim Klicken auf eine Schaltfläche ausgeführt werden soll. Der empfohlene Weg, dies zu tun (soweit ich das beurteilen kann), besteht darin, ein Bild einzufügen und dann ein Skript an das betreffende Bild anzuhängen.
Dies funktioniert einwandfrei, solange ich das Blatt auf meinem Desktop öffne. Wenn ich das Blatt jedoch in der Android-Google-Blatt-App öffne, wird das Bild einfach nicht angezeigt. Soweit ich das beurteilen kann, ist dieses (fehlende) Verhalten nirgendwo dokumentiert, aber ich habe eine Reihe von Personen mit dem gleichen Problem gefunden.
Ich habe mich gefragt, wie ich dieses Problem umgehen kann. Habe ich etwas Offensichtliches verpasst, das meine Bilder in der Android-App sichtbar macht? Oder gibt es eine andere einfache Möglichkeit, einem Blatt, das auf Mobilgeräten funktioniert, einen Skriptauslöser hinzuzufügen?
Antworten:
Es scheint, dass derzeit weder Bilder noch benutzerdefinierte Menüelemente in der Sheets Android-App funktionieren. Ich schlage vor, ein "Funktionsmenü" in der Tabelle zu erstellen. Zum Beispiel:
onEdit
(einfacher Auslöser), die bei jeder Bearbeitung ausgeführt wird, prüft, ob sich der Inhalt von B1 geändert hat. In diesem Fall wird die entsprechende Funktion ausgeführt.Hier ist mein Code mit zwei Funktionen zu Demonstrationszwecken:
Die Bedingung
/^\w+$/.test(e.value)
ist nur zu überprüfen, ob wir eine nicht leere Zeichenfolge haben und keinen schädlichen Code ausführen, den jemand irgendwie in Zelle B1 eingefügt hat. Nachdem die Funktion mit aufgerufen wurdethis[e.value]();
(this
bezieht sich auf das globale Objekt und enthält Funktionsnamen), wird der Inhalt von B1 gelöscht. Man kann wählen, ob dieselbe oder eine andere Funktion erneut ausgeführt werden soll.Als Proof of Concept finden Sie hier Screenshots aus der App. Screenshot 1: Auswahl einer Funktion
Screenshot 2: Nachdem die Funktion ausgeführt wurde
Verweise
quelle
onEdit
Trigger in einen installierbaren, der mit der Berechtigung des Benutzers ausgeführt wird, der den Trigger installiert hat.