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.

A webview gyakorlatilag semmit mást nem tesz, mint a neve mutatja. Megjelenít egy weboldalt. Ha interakciót szeretnél, akkor az oldal sütijeit, esetleg az adatbázis adatokat is át kell adnod az alkalmazásnak.

“The basic tool for the manipulation of reality is the manipulation of words. If you can control the meaning of words, you can control the people who must use them.”

― Philip K. Dick

Sajnos nem nagyon tudok látatlanban mit mondani. Tudni kellene, hogy az eredeti oldal milyen módon autentikál, (gondolom db alapján), van e valami js varázslás (ehhez nagyon nem értek), esetleg  más dolog, stb. Szóval nem triviális a dolog.

“The basic tool for the manipulation of reality is the manipulation of words. If you can control the meaning of words, you can control the people who must use them.”

― Philip K. Dick