Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 设置Windows Phone 8.1 WebView的基本URL并使用NavigateToString()_C#_Iframe_Webview_Windows Phone 8.1_Winrt Xaml - Fatal编程技术网

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

C# 设置Windows Phone 8.1 WebView的基本URL并使用NavigateToString(),c#,iframe,webview,windows-phone-8.1,winrt-xaml,C#,Iframe,Webview,Windows Phone 8.1,Winrt Xaml,在我的应用程序中,我想加载一个包含带有远程url的iframe的html。除了iframe的src之外,这个html总是相同的。我所做的是将html保存在一个字符串中,并填写iframe url,然后调用NavigateToString(html)。我从restapi中获取iframe url。我还得到了一个基本URL。如果我将这两个url合并成一个绝对url,并将其设置为iframe的src,页面由于安全原因将不会加载(这是一个支付页面)。但是如果我在没有baseUrl的情况下设置它,,当然,

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

在Android中,可以简单地调用webView.loadDataWithBaseURL。Windows Phone 8.1中是否有类似的功能?有解决办法吗


(这个问题更加复杂,因为我还必须将Cookies设置到网络视图。)

我想出了一个解决方案,这个解决方案很有效,而且实际上它没有我起初认为的那么粗糙

我跳过了字符串。例如,通过使用NavigateWithHttpRequestMessage,我可以向URL发送请求。我还可以设置cookies(有关此项的更多信息:)。到目前为止,我已经:

  • 基本URL集

  • 饼干套装

  • 不过,我还没有设置本地html字符串。为此,在WebView的NavigationCompleted事件中,我运行了一个JS脚本,如下所示:

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

    这将用我要加载的内容替换当前html内容。因此,我的html包含iframe和我需要的域所在页面上的相对url。

    我想出了一个解决方案,但这是一个黑客:我使用NavigateWithHttpRequestMessage加载一个不存在的url(从而设置基本url),而不是使用JavaScript将整个html内容替换为包含iframe的html。不过,欢迎提出其他想法!你能分享代码块吗?