c# - Establecer URL base de Windows Phone 8.1 WebView y usar NavigateToString()
iframe windows-phone-8.1 (1)
En mi aplicación, quiero cargar un html que contenga un iframe con una url remota. Este html es siempre el mismo, excepto el src del iframe. Lo que hago es mantener el html en una cadena y completar la URL del iframe, luego de llamar a NavigateToString (html) . Obtengo la URL iframe de una API REST. También obtengo una baseUrl . Si combino esas dos URL en una url de absoulute y establezco que como src del iframe, la página no se cargará debido a razones de seguridad (es una página de pago). Pero si lo configuro sin baseUrl , por supuesto, la vista web no tiene idea de cuál es la baseUrl, y la página tampoco se cargará .
En Android uno simplemente puede llamar a webView.loadDataWithBaseURL . ¿Hay algo como esto en Windows Phone 8.1? Cualquier solución?
(El problema se complica aún más porque también tengo que configurar Cookies para la vista web).
Encontré una solución, que funciona, y en realidad es menos hacky de lo que me pareció al principio.
Salté NavigateToString. Al usar NavigateWithHttpRequestMessage, puedo enviar una solicitud a una URL, por ejemplo http://mybackend.com . También puedo configurar cookies (más información sobre esto: https://social.msdn.microsoft.com/Forums/windowsapps/en-US/a451d411-9312-4d40-80ee-112e166144ab/how-to-send-auth- cookie-in-webview-request? forum = winappswithcsharp ). Hasta ahora tengo:
conjunto de URL base
conjunto de cookies.
Sin embargo, aún no configuré mi cadena html local. Para esto, en el evento NavigationCompleted de WebView, ejecuto un script JS como este:
await wvSecurePay.InvokeScriptAsync("eval", new string[] { "document.getElementsByTagName(''html'')[0].innerHTML = ''" + htmlToLoad + "'';"})
Esto reemplazará el contenido html actual con el que quiero cargar. Así que tengo mi html que contiene el iframe con la url relativa en una página que tiene el dominio que necesito.