ipublikuj-archive/mobile-detect

DetectTabletAsMobile a deviceView

jirinapravnik opened this issue · 5 comments

Ve starší verzi (než byla přidaná view - PHONE) jsem používal při extension. Toto nastavení:

redirect:
    mobile:
        isEnabled: true             # default false
    detectTabletAsMobile: true      # default false

Pak mi stačilo zavolat $deviceView->isMobileView() v presenteru a tam si nastavil, co chtěl pro mobilní verzi, kterou jsem zobrazoval i na tabletu. Je to možné nějak teď? Když si nastavím usera genta na iphone, dostanu v deviceview ze jsem PHONE - budiz, ale pokud si prepnu na ipad, tak mam device_view TABLET.

Nemel by se nejak brat tady ohled na to detectTabletAsMobile? Jak docilit jinak toho abych mel jeden vzhled pro to i to?

Resp. kdy vlastně dostanu na isMobile() TRUE. Když kouknu sem: https://github.com/iPublikuj/mobile-detect/blob/master/src/IPub/MobileDetect/Events/OnRequestHandler.php - tak mi přijde, že se tam nikdy nedostane ne? Buď mi to hodí tablet, nebo phone.

detectTabletAsMobile - tento parametr se používá pouze při přesměrování, je proto i umístěn v sekci přesměrování. Takže pokud na stránku přijdeš z tabletu a máš povoleno přesměrování tak tě to přesměruje na adresu mobilu.

deviceView - všechny metody okolo "View" jsou o tom že si toto view můžeš nastavit takže použití je pro nějaké tlačítko co vložíš na stránky pro přepnutí verze full/tablet atd. a pak je jedno co máš za zařízení, prostě natvrdo to přepneš na tablet i když si na desktopu. To co zřejmě hledáš jsou metody mobileDetect, takže ve tvém případě v presenteru:

        if ($this->mobileDetect->isMobile()) {
            //...do whatever
        }

isMobile pak sdružuje jak telefony tak tablety.

Podle mě potřebuji deviceView. Mám to takto - přijde uživatel já se podívám, co je zač, pokud je mobilář, tak mu podstrčím view pro mobily (nepřesměrovávám, jen mu dám jinou view). Dole si pak může přepnout na plnou/mobilní verzi taky, což se co zkouším, při mobileDetect nestane.

Já to chápu, tže to funguje takto ve střevech. Přijde člověk, detekuje se co je zač a podle toho se mu nastaví deviceView a to mohu GET parametrem předělat ne? Aspoň tak jsem s tím pořád pracoval a fungovalo, co jsem teď zkoušel na novém projektu, tak nedostávám u deviceView mobile, ale phone. A když právě kouknu na onRequestHandler, tak nastavení deviceView na mobile je až na řádku 167 ale podle mě se dříve než tohle nastaví deviceView na Tablet nebo Phone a na mobile se dle mě nedostane. Nebo mi něco uniká?

Ano chápeš to dobře. V této verzi se to na mobile už nedostane, v podstatě toto view je tam už jen z historických důvodů. Buď máš tablet nebo phone a nebo si to setneš sám

ok, díky za ujasnění uzavírám tedy

Jen teda doplním že můžeš si udělat podmínku s isMobileView() ORTabletView() OR isPhoneView()