我的应用程序中有Webview。最近我尝试登录gmail,但收到错误消息“错误403:disallowed_useragent”。
从我使用的文档中
Mozilla/5.0 (Linux; Android 4.4; Nexus 4 Build/KRT16H) AppleWebKit/537.36
(KHTML, like Gecko) Version/4.0 Chrome/30.0.0.0 Mobile Safari/537.36
但是我的应用程序崩溃
E/chromium: [ERROR:validation_errors.cc(76)] Invalid message: VALIDATION_ERROR_DESERIALIZATION_FAILED (safe_browsing.mojom.SafeBrowsing.0 )
E/chromium: [ERROR:render_process_host_impl.cc(4990)] Terminating render process for bad Mojo message: Received bad user message: Validation failed for safe_browsing.mojom.SafeBrowsing.0 [VALIDATION_ERROR_DESERIALIZATION_FAILED (safe_browsing.mojom.SafeBrowsing.0 )]
[ERROR:bad_message.cc(27)] Terminating renderer for bad IPC message, reason 123
E/chromium: [ERROR:validation_errors.cc(76)] Invalid message: VALIDATION_ERROR_DESERIALIZATION_FAILED (network.mojom.URLLoaderFactory.0 )
E/chromium: [ERROR:render_process_host_impl.cc(4990)] Terminating render process for bad Mojo message: Received bad user message: Validation failed for network.mojom.URLLoaderFactory.0 [VALIDATION_ERROR_DESERIALIZATION_FAILED (network.mojom.URLLoaderFactory.0 )]
[ERROR:bad_message.cc(27)] Terminating renderer for bad IPC message, reason 123
E/chromium: [ERROR:aw_browser_terminator.cc(125)] Renderer process (14677) crash detected (code -1).
E/chromium: [ERROR:aw_browser_terminator.cc(90)] Render process (14677) kill (OOM or update) wasn't handed by all associated webviews, killing application.
所以我想知道如何构造一个可用于每个站点的用户代理字符串。如果有人告诉我用户代理的重要性,我将非常感谢。
请参见android user agent。对于旧版本的Android(API <30),请使用:
webview.getSettings().setUserAgentString("user-agent-string");
[User-agent告诉站点,哪个浏览器有一个用户。根据此值,网站可以更改行为(可以加载不同的内容或JavaScript),也可以在分析中使用。