设置Windows Phone 8.1 WebView的基本URL并使用NavigateToString()

WPM*_*Med 2 c# iframe webview winrt-xaml windows-phone-8.1

在我的应用程序中,我想加载一个包含带有远程URL 的iframe的html .除了iframe的src之外,这个html总是一样的.我所做的是将html保存在一个字符串中,并填写iframe url,而不是调用NavigateToString(html).我从REST API 获取iframe网址.我也得到了一个baseUrl.如果我将这两个url合并到一个absoulute url并将其设置为iframe的src,则由于安全原因(这是一个支付页面),页面将不会加载.但是如果我在没有baseUrl的情况下设置它,当然,webview不知道baseUrl是什么,并且页面不会加载.

在Android中,可以简单地调用webView.loadDataWithBaseURL.Windows Phone 8.1中是否有类似的内容?任何解决方法?

(问题进一步复杂化,我还必须将Cookie设置为webview.)

WPM*_*Med 5

我想出了一个有效的解决方案,实际上它起初并不比我看起来那么简单.

我跳过了NavigateToString.通过使用NavigateWithHttpRequestMessage,我可以向URL发送请求,例如http://mybackend.com.我也可以设置cookie(更多相关信息:https://social.msdn.microsoft.com/Forums/windowsapps/en-US/a451d411-9312-4d40-80ee-112e166144ab/how-to-send-auth- cookie-in-webview-request?forum = winappswithcsharp).到目前为止,我有:

  1. 基本URL集

  2. 饼干设置.

虽然,我还没有设置我的本地HTML字符串.为此,在WebView的NavigationCompleted事件中,我运行如下的JS脚本:

await wvSecurePay.InvokeScriptAsync("eval", new string[] { "document.getElementsByTagName('html')[0].innerHTML = '" + htmlToLoad + "';"})
Run Code Online (Sandbox Code Playgroud)

这将用我想要加载的html内容替换当前的html内容.所以我的html包含iframe和相对网址,页面上有我需要的域名.