добавление определения мобильного браузера, выбор правил в набор правил - PullRequest
2 голосов
/ 29 сентября 2011

Я хотел бы добавить функциональность в набор правил, который запускает отдельное правило в зависимости от того, является ли браузер мобильным или нет. (одно правило запускается для стандартного браузера, другое правило запускается для мобильного браузера) Я знаю, что обнаружение браузера может быть выполнено любым количеством способов, но мое первое желание было бы с использованием JavaScript.

Есть мысли о том, как начать с этого?

1 Ответ

1 голос
/ 29 сентября 2011

Вы можете использовать useragent объект , например:

rule detect_agent {
    select when pageview ".*"
    pre {
        browser_name = useragent:browser_name();
        browser_version = useragent:browser_version();
        os = useragent:os();
        os_type = useragent:os_type();
        os_version = useragent:os_version();
        full_useragent = useragent:string();
        message = <<
            <p><strong>Information about your browser:</strong></br />
            <em>Browser name:</em> #{browser_name}</br />
            <em>Browser version:</em> #{browser_version}</br />
            <em>Operating system:</em> #{os}</br />
            <em>OS type:</em> #{os_type}</br />
            <em>OS version:</em> #{os_version}</br /></p>
            <p>#{full_useragent}</p>
        >>;
    }
    append("body", message);
}

Возможно, вам придется выполнить какой-то собственный анализ, поскольку browser_name и os могут быть или не быть правильными. Вот как это выглядит в Chrome на Mac (вы можете проверить его, используя этот URL в любом браузере):

Chrome, Mac

Вот как это выглядит в Safari на iPad:

Safari, iPad

Проведите некоторое исследование того, как выглядят строки UserAgent для браузеров, которые вас интересуют. Затем вы можете использовать функцию useragent:string() вместе с match(), чтобы определить, что с ней делать. (Если вам нужен пример того, как это сделать, дайте мне знать.)

...