如何为特定的UserAgent字符串

时间:2015-07-27 15:51:46

标签: templates joomla webview joomla3.0

我有一个Joomla插件驱动的门户网站。插件已安装并在浏览器中完成我需要的操作。现在我正在尝试直接使用joomla-plugin html构建一个WebView应用程序。我可以通过设计一个看起来像我的应用程序的新joomla模板来做到这一点。现在,如果我激活模板,它将接管Web版本。

我如何使用UserAgent字符串或其他任何来指定请求的工作来自应用程序,因此我可以使用设计的模板而不是默认的模板,默认的模板仍可用于其他网络浏览器。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

1。如何使webview识别自己

如果您完全控制Web视图代码,您当然可以发送预定义的UserAgent字符串或更好的自定义标题(例如" X-App:my-webview")。

如果您只想按品牌/屏幕/功能识别某些设备,可能需要查看WURFL项目。

2。如何在Joomla

中切换模板

你必须编写一个系统插件来监听" onAfterInitalise"事件,检查自定义UserAgent /标头,并相应地切换模板。代码或多或少会像这样(未经测试):

<?php

defined('_JEXEC') or die;

jimport('joomla.environment.browser');

class plgSystemTemplateswitcher extends JPlugin
{
    private $webViewUserAgent = "myWebViewUserAgent";
    private $webViewTemplate = "myWebViewTemplate";

    public function onAfterInitialise()
    {
        if ($this->getUserAgent() == $this->webViewUserAgent) 
        {
            $this->setTemplate($this->webViewTemplate);
        }
    }

    private function getUserAgent()
    {
        $browser = JBrowser::getInstance();

        return $browser->getAgentString();
    }

    private function setTemplate($template)
    {
        $app = JFactory::getApplication();
        $app->setTemplate($template);
    }     
}