Geräte/Nutzer identifizieren
Ich nutze Ninox via iCloud. Hier fehlen ja logischerweise die user()-Funktionen. Doch wie könnte ich dennoch zwei Geräte unterscheiden? Gibt es globale Variablen, die auf jedem Device einen anderen Wert haben können? Ich habe auch nach Funktionen gesucht, um zum Beispiel den Gerätenamen vom Betriebssystem abzugreifen, aber nichts dazu gefunden. Das würde mir schon reichen.
25 Antworten
-
Hallo, mit der Funktion ninoxApp() lässt sich die Plattform abfragen, auf der Ninox gerade läuft. Rückgabewerte sind "web", "mac", "ipad", "iphone" oder "android".
-
Danke, das hilft schon mal. Zwei Macs lassen sich damit aber leider nicht unterscheiden.
-
Hat jemand vielleicht noch einen Trick parat? Ich brauche für eine x-callback-URL einen Access-Token, der aber eben gerätegebunden ist, weil die entsprechende App den Code einmal zufällig generiert.
-
Haben sich hier Neuigkeiten ergeben? Mittlerweile sind ja einige Ninox-Versionen ins Land gezogen.
-
Vielleicht gib's einen Weg mittels http() an die IP-Adresse des Gerätes zu gelangen? Etwa mithilfe der Fritzbox?
-
Du könntest zB eine simple API abfrage machen und damit ein Feld befüllen. Hier als Script auf einem Button:
let response := http("GET", "https://api.ipify.org?format=json");
'TEXTFELD' := text(response.result.ip)Das ist dann aber nicht die interne Geräte IP, sondern deine Public IP des Routers. Das hilft also nur bei "verstreuten" Mitarbeitern...
-
Du könntest auch die von Ninox gesetzten Cookies auslesen. Ich habe es gerade probiert, man kann über eine javascript Funktion aus Ninox heraus entweder eigene Cookies setzen, oder vorhandene auslesen...
-
Danke für die Tipps. Wie führe ich den JavaScript aus? In der Doku finde ich nichts dazu. Wichtig in meinem Fall zu wissen, ich nutze nicht Ninox Cloud.
-
Das mit der Abfrage und dem Dialog mache ich bereits so. Ist allerdings unkomfortabel und fehleranfällig.
Ich habe mittlerweile über html() in einem Funktions-Feld hinbekommen, mittels localStorage einen eindeutigen Wert zu speichern. Doch irgendwie komme ich nicht über herkömmliche Ninox-Funktionen an den Inhalt des Feldes.
html(" <span id=result></span> <script> myDevice = localStorage.getItem('device'); if (myDevice == null) { localStorage.setItem('device', crypto.randomUUID()); } document.getElementById('result').innerHTML = localStorage.getItem('device'); </script> ")
-
...aber user() funktioniert doch auch in der App...?
-
Wenn du das Ergebnis in ein Textfeld übertragen willst, benötigst Du die Feld-ID des Textfelds (im Beispiel ist es 'R') und kannst dann per Button den Wert übertragen. Feld-ID werden fortlaufend vergeben, kann also über Versuch gefunden werden oder per API - findest Du hier im Forum. Falls Du das nicht schon wußtest. Mirko
let content := " <script> function transfer() { myDevice = localStorage.getItem('device'); if (myDevice == null) { localStorage.setItem('device', crypto.randomUUID()); } const result = localStorage.getItem('device'); let idNX = '" + raw(Nr) + "'; database.update(idNX, 'R' , result); } </script> <button onclick='transfer()'> <p id='ip'>device</p></button> "; html(content)
-
Für das Protokoll: Ich habe Mirkos Formel wie folgt abgewandelt:
let content := " <span id='myresult'></span> <script> function transfer() { myDevice = localStorage.getItem('device'); if (myDevice == null) { localStorage.setItem('device', crypto.randomUUID()); } const result = localStorage.getItem('device'); document.getElementById('myresult').innerHTML = result; let idNX = '" + raw(Nr) + "'; database.update(idNX, 'T1' , result); } transfer(); </script> "; html(content)
Das Formelfeld muss sichtbar sein, damit es automatisch die ID in ein Textfeld (in meinem Fall 'T1') einfügt. Da meine Datenbank ohnehin mit einem Dashboard (Tabelle mit nur einem Datensatz) startet, musste ich das Formelfeld hier nur einfügen, das Textfeld liegt in einem versteckten Reiter. Ich habe das Formelfeld ohne Feldnamen und mit weißer Schrift und weißem Hintergrund eingesetzt, damit es nicht sichtbar ist.
-
Inwiefern ist damit nun das Ursprungsproblem gelöst? Ich komm da grad nicht ganz mit und würd mich über etwas Licht im Dunkeln freuen
Content aside
- Status Answered
- vor 6 MonatenZuletzt aktiv
- 25Antworten
- 458Ansichten
-
6
Folge bereits