MIT App inventorral létrehozott appba automatikus belépés.

Fogalmam sincsen, mennyire megtévesztő a cím vagy sem, a lényeget ide írom.

Létrehoztam egy Androidos appot, ami gyakorlatilag a böngészőt helyettesíti, csak egy webcím van az appban. Amikor elindul az app, akkor bekéri a webhely felhasználó nevét és kódját, majd megjelenik a tartalom, akárcsak egy sima webböngészőben. Kilépés utáni újbóli bejelentkezéskor, ismét kér minden adatot. Azt szeretném, hogy jegyezze meg a felhasználó nevét és jelszavát. Megoldhatom laikusként?

Hozzászólások

Most itt tartok:

http://www.kepfeltoltes.eu/view.php?filename=772jegyezzmeg.png

Innen hogyan tovább, egyáltalán nekem ez a járható utam? Ugyanis azt szeretném, hogy a már létező weboldalamon a felhasználói névhez és jelszóhoz lehessen rendelni az app beviteli mezőit úgy, hogy ha kilép a user, utána valóban emlékezzen rá, egyelőre az app csak annyit csinál, hogy beírhatom a felhasználó nevet és jelszót, de a belépés gombra nem reagál látszólag semmit sem. Mit néztem el?

Annak is örülnék, ha valaki a felépítését elmondaná legalább annak, hogy egy appon keresztül belép a felhasználó egy adott weboldalra, majd onnan kilépve is megmaradnak a belépési adatai és legközelebb már csak a belépés gombra klikkelve simán beléphet a felületre.

Szia! Tehát, hogyha jól értem, a következőt szeretnéd elérni:

  • létrehoztál egy alkalmazást App Inventrorral,
  • az alkalmazásban létrehoztál egy web view-t, amely a weboldaladra mutat, ahova be kellene jelentkeztetni a felhasználót,
  • és azt szeretnéd elérni, hogy az első sikeres bejelentkezés után az alkalmazásod jegyezze meg a felhasználónevet és jelszót,
  • majd minden további indításnál ezeket adja át a web view számára és automatikusan jelentkezzen be az adatokkal a weboldalra?

Először is, az nem járható út, hogy magán a weboldalon lenne ez a funkcionalitás megvalósítva? Általában ez elég elterjedt megoldás, és gondolom a webview eltárolja a sütiket ugyanúgy, mintha böngészőből néznéd az oldalt. Szóval ez gyakorlatilag meg is oldaná a problémát, valamint szerintem ez lenne a legegyszerűbb megoldása a problémának.

Nem kell belenyúlni a webviewbe, és járható út. A kulcs viszont triviális (legalábbis nekem). Ha jobban megnézed, akkor az adatbázis neve a linkelt példában TinyDB1, a típusa nem meglepő módon TinyDB. Ezt írják róla:

TinyDB is a non-visible component that stores data for an app. Apps created with App Inventor are initialized each time they run.

Szóval a hiányzó rész nem más, mint egy TinyDB1 nevű adatbázis (TinyDB Storage) létrehozása az appban.

http://ai2.appinventor.mit.edu/reference/components/storage.html

Erről szól az első bejegyzés. Az ott található vizuális kód kitölti az felhasználónév és jelszó mezőt, ha az adatbázisban van eltárolt érték. A bejelentkezés gombra továbbra is rá kell nyomni. Ez az "emlékezz rám" technika. Működő megoldást bővít, nem kerüli meg a meglévő bejelentkezési technikát. Az automatikus bejelentkezéshez mélyebben kell belenyúlni mindenbe (csak az első alkalommal jelenik meg a bejelentkezés rész).

https://community.appinventor.mit.edu/t/how-do-i-make-a-remember-me-che…

Ez így van, de az eredeti kérdés konkrétan az App inventorral készült alkalmazásokra vonatkozott, és az általam linkelt lehetséges megoldás is az App inventoron belül hozza létre a bejelentkezési mezőket. Hogy mit csinál a bejelentkezési gomb, arról nem esett szó, szerintem onnan indul a webview kezelő rész, ott kerülnek átadásra a bejelentkezési adatok.

Viszont - ez már nem teljesen az eredeti témához kapcsolódik -, ha CustomWebViewt használsz, akkor lehetőséged van egyedi JS kóddal közvetetten az egész weboldalt egyedileg módosítani, lekérdezni, mindent amit JS kóddal lehet.

https://community.appinventor.mit.edu/t/customwebview-an-extended-form-of-web-viewer/9934

Igen, ezen a megoldáson gondolkodtam én is, hogy egy form az első induláskor bekérné a felhasználónevet illetve a jelszót, ezeket elmenti az adatbázisba, majd a webviewba JS-el gyakorlatilag beinjektálásra kerülnek az adatok, majd a kérdéses form.submit() hívással megoldható a bejelentkezés. Már ha az adott weboldalon form-os megoldás van, és nem valami egyéb, egyedi / JS-es bejelentkező felület.