WebView 中的 Paypal = 白页(不是 https 问题)
Posted
技术标签:
【中文标题】WebView 中的 Paypal = 白页(不是 https 问题)【英文标题】:Paypal in WebView = White Page (not an https issue) 【发布时间】:2014-02-19 23:32:10 【问题描述】:简单的 android 应用程序,带有 WebView,当我打开 PayPal 网站的任何 url 时,即:
mWebView.loadUrl("https://www.paypal.com/ua/cgi-bin/webscr?cmd=_run-check-cookie-submit&redirectCmd=_login-submit");
它显示白页
我遵循过滤 JS 的建议 http://webdevsys.com/paypalBlankPage.htm
我在我的应用 Java 代码的“onLoadResource”部分跳过了这个 JS:
...
onLoadResource(WebView view, String url)
if(url.contains("pp_jscode_080706.js")
)
else
super.onLoadResource(view, url);
...
但它没有帮助。
JS 已启用,
webSettings.setjavascriptEnabled(true);
我没有打开浏览器的设置 在 ShouldOverrideUrlLoading 中,所以所有 url 和重定向都是内部的
这不是 https 问题,我什至添加了(但没有错误):
@Override
public void onReceivedSslError(WebView view,
SslErrorHandler handler, SslError error)
android.util.Log.i("!!!!", "ssl error = " + "SSL Error received: "+ error.getPrimaryError());
handler.proceed();
我在清单中有 API 最低级别 8,在真实设备 4.1.1 和模拟器 4.2.2 上测试
【问题讨论】:
您是否有办法查看您的请求的外观(在线)?也许在网络上的另一台计算机上使用 Wireshark(具有混杂模式)或在本身用作热点的计算机上运行它。也许 Paypal 无法识别您的用户代理分辨率并将大小保留为 1 个像素。 @selalerer,我会尝试设置标准用户代理,因为现在我有一个自定义的, - “Android myapp”。顺便说一句,在 ios 上,所有的自定义用户代理都可以使用,即使没有像 iphone/ipad 这样的词。 @selalerer,它可以在没有用户代理的情况下工作!谢谢,请粘贴您的评论作为答案,我会接受。 很高兴听到它有效。这只不过是一个有根据的猜测:-) 这也是我的想法,作为选项,但我拒绝这个,因为我的自定义 UA 中已经有“android”这个词 :) 顺便说一句,现在我的最终用户代理是:Mozilla/5.0 (Linux ; U; Android 2.2.1; de-de; HTC_Wildfire_A3333 Build/FRG83D) AppleWebKit/533.1 (Khtml, like Gecko) Version/4.0 Mobile Safari/533.1; MyApp 我需要“Myapp”和“Android”这两个词来进行服务器端检查。 【参考方案1】:也许 Paypal 无法识别您的用户代理分辨率并将大小保留为 1 个像素。
【讨论】:
顺便说一句,现在我的最终用户代理是:Mozilla/5.0 (Linux; U; Android 2.2.1; de-de; HTC_Wildfire_A3333 Build/FRG83D) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0移动 Safari/533.1; MyApp 我需要“Myapp”和“Android”这两个词来进行服务器端检查,所以现在 UA 有了它们并且 PayPal 可以工作。 我不知道 Paypal 在他们的服务器端是如何做的,但我知道那里有出售用户代理字符串和分辨率(以及移动设备的其他属性)之间的映射的数据库。如果这是他们使用的,则需要客户端提供更完整和知名的用户代理才能正确识别它。 如果他们至少以某种方式呈现小/大网页会很好【参考方案2】:确保 webview 是
android:layout_
而不是包装内容。
这将解决问题。
【讨论】:
以上是关于WebView 中的 Paypal = 白页(不是 https 问题)的主要内容,如果未能解决你的问题,请参考以下文章
加载时在webview中显示白页(PDF url)url android
Webview android中的Paypal付款页面布局损坏