Webview 重定向问题

Posted

技术标签:

【中文标题】Webview 重定向问题【英文标题】:Webview Redirect Issue 【发布时间】:2017-03-20 11:08:28 【问题描述】:

在我的订单支付电子商务应用中,我将用户重定向到 webview。在我的网络视图中,它要求用户使用 Google Plus 登录。当用户单击 Google+ 按钮时,子窗口会打开,并且在成功验证后会将结果发送回父窗口,并且在父窗口中,会发生从登录屏幕到用户来自的页面的重定向。 [前产品详细信息页面、购物车页面等]。

那么这里的问题是当我在 android Webview 中打开链接时

webview.loadUrl(url);

只要用户点击 G+ 重定向并且父页面被删除并且 g+ 身份验证开始,它就会正常打开。成功认证后,父窗口被控制,但此时父窗口不存在,所有父 javascript 对象都被之前的子窗口替换。

我的重定向在错误的地方。

【问题讨论】:

检查一次***.com/questions/19831645/…。 【参考方案1】:

getOriginalUrl()

它返回最初为当前页面请求的 URL

getUrl () 并不总是与传递给 WebViewClient.onPageStarted 的 URL 相同,因为虽然该 URL 的加载已经开始,但当前页面可能没有改变。

getOriginalUrl () 获取当前页面的原始 URL。这并不总是与传递给 WebViewClient.onPageStarted 的 URL 相同,因为尽管该 URL 的加载已经开始,但当前页面可能没有改变。此外,可能有重定向导致与最初请求的 URL 不同。

【讨论】:

我不想要 url,我希望在子窗口关闭时 webview 之间进行通信,然后我想发送他的回复,就像在与 google 共享用户 ID 成功认证后一样,该用户 ID 在 javascript 对象中接收到通信父 webview。当我的父 webview 在接收信息时重定向。

以上是关于Webview 重定向问题的主要内容,如果未能解决你的问题,请参考以下文章

从 webview 重定向到 ReactNative 组件

Android WebView 重定向问题

WebView重定向新开界面问题-b

没有重定向的 WebView 返回历史记录

WebView重定向问题的解决方案

如何从 Xamarin Forms 中的 webview 拦截“重定向 URL”