[javascript] Android 'menu' toets afvangen?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Xthemes.us
  • Registratie: Juli 2004
  • Laatst online: 25-06 18:56
Hallo.

Weet iemand of het mogelijk is om de 'menu' toets onder Android binnen een website af te vangen? Ik ben een webapp aan het schrijven en het 'app' gevoel zou versterkt kunnen worden door de menu toets een functie toe te wijzen. Ik zoek een javascript oplossing als die er is en anders dan is het maar pech gehad, dus alsjeblieft geen phonegap (of vergelijkbare) oplossingen.

Ik heb het al geprobeerd met een simple key alerter om te zien of het event uberhaupt als keyevent wordt geregistreerd.
JavaScript:
1
2
3
4
5
6
7
document.onkeydown = checkKeycode
function checkKeycode(e) {
 var keycode;
 if (window.event) keycode = window.event.keyCode;
 else if (e) keycode = e.which;
 alert("keycode: " + keycode);
}

Op het geteste toestel dat gebruik maakt van Android 2.1 was dit niet het geval. Weet iemand een manier om dit event wel af te vangen?

MSI GX640 - 8GB RAM, Radeon 5970, 80GB SSD


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Xthemes.us
  • Registratie: Juli 2004
  • Laatst online: 25-06 18:56
Alhoewel een goed punt vraag me ik af of dat de beweegreden er toe is dat het niet als keyevent wordt gezien. Ik bedoel, je kunt het er wel uit laten zien als het standaard venster etc maar met welk doel? Je voert daar geen wachtwoorden in en je ziet er niet het 'secure' slotje of iets dergelijks (tenminste als ik niks over het hoofd zie).

MSI GX640 - 8GB RAM, Radeon 5970, 80GB SSD


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Ik ben écht niet bekend met Android dus ik blaat maar wat; maar ik vermoed dat je echt op OS-level toegang moet hebben om die "menu" toets uit te lezen (ik neem even aan dat 't net zoiets is als de "home" knop op een iPhone). Anders dan dat je applicatie (in dit geval de browser dus) misschien een seintje krijgt van "hey, kappen" of "hey, doe dit", "hey sla je zooi op ik ga je afsluiten" oid kan ik me haast niet voorstellen dat de browser dat event dan weer zou exposen (hooguit bij een onunload oid).

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Xthemes.us
  • Registratie: Juli 2004
  • Laatst online: 25-06 18:56
Ik ben weer niet bekend met iOS (en maar zeer beperkt met Android - heb zelf een N900 met Maemo) maar ik verwacht inderdaad dat de knop dezelfde functionaliteit heeft.

Heb de hoop dat Google webapps zo een warm hart toedraagt (ze willen immers iedereen en alles op het internet) dat ze dit soort zaken wel mogelijk maken.

MSI GX640 - 8GB RAM, Radeon 5970, 80GB SSD


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Xthemes.us schreef op vrijdag 28 oktober 2011 @ 12:10:
Heb de hoop dat Google webapps zo een warm hart toedraagt (ze willen immers iedereen en alles op het internet) dat ze dit soort zaken wel mogelijk maken.
Het gaat er om dat die knop een "(bedoeld voor de) Telefoon" functie heeft; het is geen toets als de letter "A" op je toetsenbord. Die toets zal een gestandaardiseerde werking hebben en 't lijkt me stug dat je dat gedrag kunt 'overriden'; al helemaal niet vanuit een sanbox in een browser.

Maar goed, again, what do I know :P

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Nakebod
  • Registratie: Oktober 2000
  • Nu online

Nakebod

Nope.

Ik denk dat de menu toets nooit bruikbaar gaat zijn, die is 99% waarschijnlijk natuurlijk al gereserveerd voor de browser zelf.
Zou nogal eh, crappy en onwenselijk zijn als die te overrulen valt.

Blog | PVOutput Zonnig Beuningen


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31
Nakebod schreef op vrijdag 28 oktober 2011 @ 12:13:
Ik denk dat de menu toets nooit bruikbaar gaat zijn, die is 99% waarschijnlijk natuurlijk al gereserveerd voor de browser zelf.
Zou nogal eh, crappy en onwenselijk zijn als die te overrulen valt.
Dit.

Wat je wilt staat ongeveer gelijk aan in je desktop browser de windows-toets afvangen oid en overschrijven...

Acties:
  • 0 Henk 'm!

  • Xthemes.us
  • Registratie: Juli 2004
  • Laatst online: 25-06 18:56
Bosmonster schreef op vrijdag 28 oktober 2011 @ 12:47:
[...]


Dit.

Wat je wilt staat ongeveer gelijk aan in je desktop browser de windows-toets afvangen oid en overschrijven...
En voor elke vreemde situatie valt wel iets nuttigs te bedenken waardoor het altijd mooi is om de optie te hebben. StarCraft 2 heeft bijvoorbeeld een 'disable windows button' optie waar ik dankbaar gebruik van maak.

Maar goed, ik snap jullie (en wellicht Google's) punt, zit er ook dik in dat het niet kan.

edit:
Ik zou zelf de vergelijking met een browser/windows toets nog niet eens willen maken. Dat is namelijk
1) Wel mogelijk
2) De Windows toets heeft altijd een vaste functie binnen het besturingssysteem. De 'menu' knop onder Android is applicatie specifiek, in het geval van een webapp (bedoeld om te bookmarken/chromeless te draaien) zou het dus logisch zijn om deze te overschrijven door de functionaliteit van de webapp zelf.

[ Voor 28% gewijzigd door Xthemes.us op 28-10-2011 13:44 ]

MSI GX640 - 8GB RAM, Radeon 5970, 80GB SSD


Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09:43

Janoz

Moderator Devschuur®

!litemod

StarCraft 2 is dan ook geen webapplicatie, maar een native draaiende applicatie. Het zou toch van de dolle zijn dat het bezoeken van een website er ineens voor zorgt dat bepaalde standaard functionaliteit van je OS niet meer werkt. Dat is toch niet zo heel vreemd om te begrijpen? Dat het voor goede doelen gebruikt kan worden is compleet niet relevant. Het is ook heel handig om je pincode op je pinpas te zetten, maar of het veilig is...

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • Xthemes.us
  • Registratie: Juli 2004
  • Laatst online: 25-06 18:56
Volgens mij heb je punt 1 over het hoofd gezien Janoz, het kan namelijk wel. Ik gaf alleen aan dat het windowstoets voorbeeld slecht gekozen is. De windowstoets heeft overigens keycode 92 in javascript ;).

Starcraft 2 was zo maar het eerste beste voorbeeld wat ik me kon bedenken, bij een webgame die goed gebruik maakt van de ctrl en alt toetsen zou je hetzelfde kunnen doen.

Het zou ook op een vergelijkbare manier kunnen gaan zoals bij een HTML5 manifest file, eerst verzoeken of het mag vanuit de browser zelf. Maar goed, ik ben niet de gene die het gaat implementeren binnen Android als het er nog niet is dus we dwalen nogal af.

Ik had al aangegeven dat ik de tegens wel begrijp, natuurlijk wil je niet dat elke site dit doet en er schuilt een wellicht een veiligheidsrisico in.

[ Voor 14% gewijzigd door Xthemes.us op 28-10-2011 16:39 ]

MSI GX640 - 8GB RAM, Radeon 5970, 80GB SSD


Acties:
  • 0 Henk 'm!

  • Tokkes
  • Registratie: September 2011
  • Laatst online: 12-12-2022
Xthemes.us schreef op vrijdag 28 oktober 2011 @ 11:43:
Hallo.

Weet iemand of het mogelijk is om de 'menu' toets onder Android binnen een website af te vangen? Ik ben een webapp aan het schrijven en het 'app' gevoel zou versterkt kunnen worden door de menu toets een functie toe te wijzen. Ik zoek een javascript oplossing als die er is en anders dan is het maar pech gehad, dus alsjeblieft geen phonegap (of vergelijkbare) oplossingen.

Ik heb het al geprobeerd met een simple key alerter om te zien of het event uberhaupt als keyevent wordt geregistreerd.
JavaScript:
1
2
3
4
5
6
7
document.onkeydown = checkKeycode
function checkKeycode(e) {
 var keycode;
 if (window.event) keycode = window.event.keyCode;
 else if (e) keycode = e.which;
 alert("keycode: " + keycode);
}

Op het geteste toestel dat gebruik maakt van Android 2.1 was dit niet het geval. Weet iemand een manier om dit event wel af te vangen?
Je webapp veranderen in een "echte" app. Anders gaat dit je niet lukken aangezien de browserapp zelf de menu-toets nodig heeft. En anders een soort browser "schrijven" (in Android kan je (voor)bepaalde onderdelen van andere apps gebruiken (kijk bv naar de apps die gebruiken maken van de barcode-scanner), in dit geval dus die van de browser om je webapp-pagina te laden) die de menu-knop kan doorgeven aan de pagina (en dus je js-code)

weet zelf niet of het mogelijk is, ben ook redelijk onbekend met coden voor android (en nog minder met JS).

[ Voor 3% gewijzigd door Tokkes op 28-10-2011 16:47 ]

GoTBF3 Race topic! -- Battlelog - Battalion'44 Servers :10Slots Wartide 213.32.98.194:7777 - TDM = 213.32.98.194:7781


Acties:
  • 0 Henk 'm!

  • RemcoDelft
  • Registratie: April 2002
  • Laatst online: 03-05 10:30
Nakebod schreef op vrijdag 28 oktober 2011 @ 12:13:
Ik denk dat de menu toets nooit bruikbaar gaat zijn, die is 99% waarschijnlijk natuurlijk al gereserveerd voor de browser zelf.
Zou nogal eh, crappy en onwenselijk zijn als die te overrulen valt.
^^ Met hem.
Het staat je natuurlijk vrij om zelf een menu-button op een website te maken.

Acties:
  • 0 Henk 'm!

  • Vircos
  • Registratie: Januari 2008
  • Laatst online: 24-09 14:00
Ik vraag mezelf in deze dan toch wat af. Hoe kan het dat ik met Android 2.3.4 wel de vraag gesteld krijg in de native browser bij het openen van Google of deze website toegang mag krijgen tot mijn locatie. Dat zou inhouden dat een website toch wel via de native browser kan communiceren met het OS.

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 09:43

Janoz

Moderator Devschuur®

!litemod

Vircos schreef op dinsdag 01 november 2011 @ 12:38:
Ik vraag mezelf in deze dan toch wat af. Hoe kan het dat ik met Android 2.3.4 wel de vraag gesteld krijg in de native browser bij het openen van Google of deze website toegang mag krijgen tot mijn locatie. Dat zou inhouden dat een website toch wel via de native browser kan communiceren met het OS.
Nee, dat houd dat niet in. Het is een onderdeel vanvoorgestelde uitbreiding op de w3c spec welke door chrome wordt ondersteund. Het om toestemming vragen is vanwege paragraaf 4.1.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • TERW_DAN
  • Registratie: Juni 2001
  • Niet online

TERW_DAN

Met een hamer past alles.

Toevallig ben ik met soortgelijke dingen bezig geweest. Zoals je het nu schrijft is het niet mogelijk. Je kunt een functie knopen aan die toets (met document.onkeypress of document.onkeydown krijg je immers een keycode terug), maar het ding overrulen wil niet.
Als je dat wil gaan doen, dan zul je er een .apk voor moeten bouwen, waarmee je een webviewclient kunt aanmaken en daar een shouldOverrideKeyEvent aan kan hangen. Dat werkt echter maar gedeeltelijk, de standaard functie van bepaalde toetsen wordt altijd uitgevoerd. Ik probeerde de pijltjes toetsen en de enterkey te ondervangen, maar op een of andere manier bleef de standaard functie richting de webview gegooid worden. En dat is iets dat ik nu net niet wilde.
Ik heb hier redelijk wat mee zitten klooien, maar geen manier gevonden die mij de mogelijkheid gaf om die toetsen compleet af te vangen en hun default gedrag uit te schakelen in de webviewclient.

In de standaardbrowser kun je sowieso nog veel minder.

Acties:
  • 0 Henk 'm!

  • Vircos
  • Registratie: Januari 2008
  • Laatst online: 24-09 14:00
Janoz schreef op dinsdag 01 november 2011 @ 12:42:
[...]

Nee, dat houd dat niet in. Het is een onderdeel vanvoorgestelde uitbreiding op de w3c spec welke door chrome wordt ondersteund. Het om toestemming vragen is vanwege paragraaf 4.1.
Dit wist ik niet en kiepert inderdaad mijn opmerking volledig overboord. Tsja als je geen echte programmeur bent, maar wel goed thuis bent in HTML/CSS (in dit geval HTML 5/ CSS 3). Dan zijn er ook genoeg mogelijkheden om daarmee een app te maken, weliswaar niet native. Dan heb je geen echte website, maar een app op deze manier kan toch een optie zijn voor zijn TS.

Toch nog even een toevoeging:
Als je nu naar Android ICS kijkt dan zijn de fysieke knoppen in principe compleet verdwenen en hebben plaats gemaakt voor softbuttons. Deze zou je ook zelf onderaan je website kunnen zetten. Weliswaar krijg je zo een dubbele set knoppen (Android en website), maar kan wel het idee van een app binnen je webapp versterken.

[ Voor 19% gewijzigd door Vircos op 01-11-2011 12:57 . Reden: Typo's en toevoeging. ]


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Volgens mij betekent de home-button vrijwel altijd dat je terug gaat naar je launcher in Android nadat ik dit snel even getest heb met een paar veelgebruikte apps (Browser, Facebook, Agenda, Whatsapp), ik gebruik Android 2.3.7 overigens.

Ik zou het zwaar irritant vinden als een website dat gedrag kan overrulen, hoe kom ik dan ooit nog weer op m'n home terecht? En what's next.. ook de back-button afvangen zodat je ook die niet meer kunt gebruiken? Laten varen dus dat idee graag ;)

Acties:
  • 0 Henk 'm!

  • Xthemes.us
  • Registratie: Juli 2004
  • Laatst online: 25-06 18:56
De terug knop hoef je niet te overwriten, dat kan prima door gebruik te maken van de browser history en hashtags ;). In HTML5 kan het ook op een iets minder 'hacky' manier.

Maar goed ik denk dat duidelijk is, het kan (in ieder geval op het moment nog) niet. Dan is het maar pech gehad en zal de 'instellingen' link gewoon op het beginscherm geplaatst worden.

MSI GX640 - 8GB RAM, Radeon 5970, 80GB SSD


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Xthemes.us schreef op donderdag 03 november 2011 @ 13:09:
Maar goed ik denk dat duidelijk is, het kan (in ieder geval op het moment nog) niet.
I wouldn't hold my breath; het lijkt me ontzettend stug dat 't ooit gaat komen.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • sanderdw
  • Registratie: November 2004
  • Laatst online: 24-09 22:17
Verkeerd gelezen! :O

[ Voor 77% gewijzigd door sanderdw op 03-11-2011 14:36 ]


Acties:
  • 0 Henk 'm!

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 22-09 16:31
sanderdw schreef op donderdag 03 november 2011 @ 14:05:
Volgens mij kan je native android commando's koppelen aan je webapp door middel van Phonegap? http://phonegap.com/
Het gaat om een mobiele website, niet een app.

Acties:
  • 0 Henk 'm!

  • sanderdw
  • Registratie: November 2004
  • Laatst online: 24-09 22:17
Inderdaad, ik heb er te snel overheen gelezen :O

Acties:
  • 0 Henk 'm!

  • M66B
  • Registratie: September 2007
  • Niet online
Dit kan op Android m.b.v. PhoneGap. Zie hier voor details.

Edit: ook gelezen over mobiele website ...

[ Voor 15% gewijzigd door M66B op 23-11-2011 22:19 ]


  • Cartman!
  • Registratie: April 2000
  • Niet online
Ik begrijp eruit dat je de site moet inladen via een native app en dat die enkel comma's mapt vanuit de native app naar javascript. Dat zou niet zijn wat de TS zocht dus.
Pagina: 1