2013-07-30 2 views
1

У нас есть сайт для Android, который открывается в веб-браузере (т. Е. Из приложения), а также в веб-браузере.Как отличить веб-представление Android от просмотра браузера?

В обоих случаях мы должны проявлять различное поведение. Есть ли способ отличить запрос от приложения webview (который открывается внутри приложения в собственном браузере) или прямой запрос браузера.

Мы не можем зависеть от агента пользователя, поскольку мы не можем обновить клиентскую сторону.

Я хочу сделать что-то вроде этого:

if(webview) 
{} 
else if(browser) 
{} 

Ее высокий приоритетный вопрос, так кто-нибудь имея ключ для решения этой проблемы, пожалуйста, напишите как можно скорее!

ответ

1

Установка User Agent String в WebView и получить его в вашем коде

yourWebView.getSettings().setUserAgentString("Some user agent String to identify"); 

См this ответ он объясняет, как это сделать.

+0

Arun, Спасибо за ур ответ! Но мы не можем изменить агент пользователя, поскольку приложение используется многими клиентами, и они сами настраивают APK. Мы можем вносить изменения только на наш сайт, т. Е. Проверять это только на javascript. Есть ли способ, который мы можем найти на самой странице, будет ли он открыт в браузере или в веб-просмотре ??? – arvindsc

+0

Android использует тот же движок для своего веб-браузера и браузера по умолчанию. Таким образом, ваши сценарии должны работать одинаково как в веб-браузере, так и в браузере по умолчанию. Вы можете подумать о добавлении некоторых аргументов по умолчанию в URL-адрес, если вы хотите по-разному. Однако для возобновления использования Android необходимо использовать setUserAgentString! –

0

Все HTTP-запросы, отправленные с помощью веб-представления, имеют заголовок внизу. Вы можете использовать это, чтобы определить, где вы получили запрос от

X-Requested-With: the.app.packageName 
Смежные вопросы