sco*_*yab 11 twitter android webview
当我尝试在Webview中加载以下URL时,我得到的是带有加载微调器的黑色twitter背景.正如WebViewClient.onPageFinished所调用的那样加载页面.但是,在标准Android浏览器中页面加载正常.
https://twitter.com/#!/scottyab or https://mobile.twitter.com/#!/scottyab
Run Code Online (Sandbox Code Playgroud)
我认为Twitter改变了他们的移动网站,因为这已经工作了一个月左右.有没有其他人经历过这个?
更新:启用了javascript mWebView.getSettings().setJavaScriptEnabled(true);
MrB*_*BLs 19
那些确实是肮脏的黑客.更改用户代理实际上是一个讨厌的解决方案,永远不应该完成.在webview中加载twitter.com时,你最好试试那里给出的代码:https: //stackoverflow.com/a/6625418/162178
对于懒惰的答题器,我会在这里给出:
webView.getSettings().setDomStorageEnabled(true);
Run Code Online (Sandbox Code Playgroud)
所有的积分都归于gregm,谁给了这个:)
快乐的编码!
编辑:只需要一点点更新来证明这一选择,用户代理就是为访问网站提供有关谁是客户端的信息.如果有一天Twitter专门针对Android进行了特殊更改,他们肯定会使用用户代理来实现这一目标.如果你告诉他们你的iPhone或任何你可能永远不会被重定向的东西,或者更简单地永远不会获得专门针对Android的css.
而在一个更政治的问题上,如果每个人都改变它的用户代理,网站统计数据将是错误的,他们可能永远不会看到有很多Androids进入他们的网站.^^(可能考虑对他们的网站进行适当的更新).而这整件事不仅仅适用于Twitter网络客户端.所以要好.
本杰明在这里的答案看起来相当不错(如果我是正确的话,使用Java的Reflection使其向后兼容)
因此,再次不要更改用户代理,这对您的应用程序和Web运行状况非常糟糕.应该简单地禁止任何代码.谢谢 :)
sco*_*yab 16
通过将用户代理硬编码到iPhone的用户代理来修复加载问题(我发现它适用于iPhone版本的应用程序)
mWebView.getSettings().setUserAgentString("Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543a Safari/419.3");
Run Code Online (Sandbox Code Playgroud)
在这个脏兮兮的黑客之后需要洗手.
小智 14
使用iPhone的用户代理稍微不那么脏,我能够使用OG Droid的用户代理字符串来实现这一点:
webView.getSettings().setUserAgentString("Mozilla/5.0 (Linux; U; Android 2.0; en-us; Droid Build/ESD20) AppleWebKit/530.17 (KHTML, like Gecko) Version/4.0 Mobile Safari/530.17");
Run Code Online (Sandbox Code Playgroud)
这样您就不会在页面上获得类似iPhone的特定文本,例如"下载适用于iPhone的新Twitter应用程序".
| 归档时间: |
|
| 查看次数: |
10272 次 |
| 最近记录: |