Umleitung per Button je nach Gerät

  • Hallo Joomlafans,


    ich brauche mal Eure Hilfe zu einem PHP Script.


    Ich möchte eine Callto Action nach dem Motto <a href="callto:123456">123456</a> erstellen.Der Button hat einen anderen Namen als die Telefonnummernanzeige.
    Es soll jedoch vorher geprüft werden, welches Gerät die Anweisung aufruft. Also Android, iphone etc., oder Desktop Gerät.Daraufhin soll der Script entscheiden, ob die Action also der Anruf aufgerufen wird, oder
    eine kleines Popup mit der Anzeige der Rufnummer erscheint. Hintergrund ist, nicht alle Desktop PC können Anrufe tätigen.

  • In Joomla kannst das so:

    Code
    1. $app = JFactory::getApplication();if ($app->client->platform == $app->client::ANDROID){ echo 'Ich bin ANDROID' . "\n\n";}if ($app->client->mobile){ echo 'Ich bin mobil' . "\n\n";}if ($app->client->browser == $app->client::FIREFOX){ echo 'Ich bin FIREFOX' . "\n\n";}


    Die Konstanten findest in Joomla-Klasse WebClient (WebClient.php).


    Ehemals JBrowser ist veraltet!


    Desktop Gerät ist heutzutage kein Kriterium für kann/kann nicht.
    Zum Testen hat sich FF AddOn "User Agent Switcher" bewährt. Geht aber nat. auch mit Chrome, wenn man weitere Geräte im Untersuchen-Tool nachlädt.


    Andere Variante https://github.com/serbanghita/Mobile-Detect verwenden/einbinden. Leider sind Plugins, die das in Joomla integrieren meines Wissens nicht immer aktuell gehalten. Muss man sich also ggf. selber drum kümmern.


    EDIT: Was es sonst so noch gibt außer o.g. Eigenschaften, kannst mit einem

    Code
    1. echo 'DEBUG '.print_r($app->client, true);exit;


    ausgeben. Musst darauf achten, dass man eine Eigenschaft zuerst aufrufen muss, bevor sie im Joomla\Application\Web\WebClient Object gefüllt wird.

    Code
    1. $app->client->engine


    Dann Debug-Zeile.

  • Vielen Dank für den Ansatz. Das Problem ist jedoch noch viel größer. Nicht alle mit z.Bsp. Android per useragent gekennzeichneten Geräte haben die SIMfunktion. So kann ich dann leider nicht umsetzen, da es immer noch zu Fällen kommt die die callto Funktion nicht ausführen können. Schade.