¿Cómo puede detectar Javascript si un sitio web se carga en el navegador de valores de Android o se carga en un WebView de otra aplicación? Me gustaría ejecutar un código ligeramente diferente en estos dos casos.Detectar dentro del navegador Android o WebView
Respuesta
actividad -> alcrear
this.webView.getSettings().setUserAgentString(
this.webView.getSettings().getUserAgentString()
+ " "
+ getString(R.string.user_agent_suffix)
);
Res -> -> Valores strings.xml
<string name="user_agent_suffix">AppName/1.0</string>
Javascript
function() isNativeApp {
return /AppName\/[0-9\.]+$/.test(navigator.userAgent);
}
Esa es la forma oficial recomendada de http://developer.android.com/guide/webapps/webview.html#EnablingJavaScript –
@MarvinEmilBrach que no funciona si está utilizando la autenticación de redes sociales en la vista web. Perderá la interfaz de Javascript – user516883
Esto solo es viable cuando también eres el desarrollador de la aplicación de Android, pero no funcionará si no puedes cambiar el código fuente de la aplicación en la que se ejecutará la página. A menos que, por supuesto, si se contacta con los desarrolladores de la aplicación y aceptan realizar los cambios en el código de Android para usted. –
Puede comprobar las variables del servidor de la página que se está solicitando para ver si está viniendo de su aplicación y establecer una variable de JavaScript consecuencia
if($_SERVER['HTTP_X_REQUESTED_WITH'] == "com.company.app")
echo 'var isAndroidApp=true;';
else
echo 'var isAndroidApp=false;';
- reemplazar com.company.app con su nombre de paquete
- 1. Detectar actualización del navegador
- 2. Detectar navegador o pestaña cerrando
- 3. Android webview dentro de un servicio?
- 4. Android - Detectar si Wifi Requiere Acceso del navegador
- 5. Android WebView clic abrir en WebView no es un navegador predeterminado
- 6. Descargar archivo dentro de WebView
- 7. ¿Cómo detectar el cierre del navegador?
- 8. detectar el tamaño de fuente del navegador
- 9. WinRt control WebView manejo de navegación dentro del control
- 10. Cocoa Navegador WebView flash blanco
- 11. Android: Detectar inactividad del usuario/Detectar (teclado) entrada de teclado
- 12. WebView y cookies en Android
- 13. Mostrar teclado suave en AlertDialog con WebView dentro (Android)
- 14. android: vista web dentro del cuadro de diálogo o ventana emergente
- 15. Android WebView Protocol Handler
- 16. Android Webview navegación privada
- 17. Detectar navegador móvil
- 18. android webview indicador de actividad del cliente
- 19. Android, Webview, obtenga los datos del formulario
- 20. Android: PhoneGap vs Webview
- 21. Android webview & localStorage
- 22. Mostrar csv dentro del navegador firefox
- 23. Detectar si CGPoint dentro del polígono
- 24. Android: WebView ActionBar (Honeycomb)?
- 25. Abrir webview no en el nuevo navegador
- 26. Android WebView contacto evento enlace
- 27. complemento del navegador de Android
- 28. Android WebView - Configuración del foco del campo HTML usando Javascript
- 29. Crear un navegador de ventana dentro del navegador con extjs
- 30. Detectar evento de desplazamiento en el navegador de Android
Compruebe si el agente de usuario de la vista web es diferente del navegador de stock de Android. Puede verificarlo con bastante facilidad yendo a este sitio. http://whatsmyuseragent.com/ Sin embargo, estoy bastante seguro de que el agente de usuario será exactamente el mismo, en cuyo caso no tengo ni idea. – Caimen
A menos que sea el creador de la WebView en cuestión. En cuyo caso, creo que puede poner lo que desee para el agente de usuario – FoamyGuy
Si está a cargo de la aplicación, ¿es posible que pueda enviar un agente de usuario específico cuando carga la página y luego usar la sugerencia de Caimen anterior? Utilizando la función [WebView's setUserAgentString] (http://developer.android.com/reference/android/webkit/WebSettings.html#setUserAgentString (java.lang.String)), puede establecer un agente de usuario específico, y luego el usuario javascript para detectar la diferencia – mopsled