拦截请求并向Xamarin.Forms.WebView提供资源
本文关键字:WebView 资源 Forms Xamarin 请求 | 更新日期: 2023-09-27 18:25:09
我想展示一些XHTML文档,这些文档引用了一些资源(样式表、脚本、图像等)。这些资源是本地的,但它们不存在于文件系统中,而是由我的应用程序生成的。
使用Android.Webkit.WebView
和Android.Webkit.WebViewClient
,我可以拦截请求并完美地提供这些资源,使用类似的东西:
internal class MyWebViewClient : WebViewClient
{
public override WebResourceResponse ShouldInterceptRequest (WebView view, string url)
{
/* logic to create a resource stream for the requested url */
return new WebResourceResponse (mimeType, encoding, generatedStream);
}
}
我可以使用Xamarin.Forms.WebView
及其相关类实现类似的功能吗?如果是,如何?在API文档中,我还没有注意到任何看起来提供等效行为的方法。
Xamarin.Forms WebView控件目前非常基础。班上的成员表明你无法实现你想要做的事情。
您可以在此处加载HTML资源等,如果您决定并遵循该路线,该资源在确定如何引用本地文件时非常有用。
但是,请注意,在Android上的Xamarin.Forms v1.2.2.6243中,为URL错误设置了Source属性。例如,如果你导航到www.yahoo.com并在该网站上点击几下,你会看到一些查询字符串参数等。然而,在Android上,这总是以Source属性的形式返回,即www.yahoo.com/。Xamarin为此创建了一个临时修复程序,然而,目前您必须包含并实现自己的自定义渲染器才能克服这一问题。