拦截请求并为Xamarin.Forms.WebView提供资源

时间:2014-10-01 12:25:50

标签: c# xamarin.forms

我想展示一些引用一些资源(样式表,脚本,图像等)的XHTML文档。这些资源是本地资源,但它们不存在于文件系统中 - 而是由我的应用程序生成。

使用Android.Webkit.WebViewAndroid.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文档中注意到任何看起来像是提供等效行为的方法。

1 个答案:

答案 0 :(得分:3)

Xamarin.Forms WebView 控件目前非常基础。 class members表明您不会能够实现您想要做的事情。

您可以加载 HTML 资源等here,这对于确定如何引用本地文件非常有用,如果您确定并沿着该路线前进。

请注意, Android 上的 Xamarin.Forms v1.2.2.6243 来源属性设置错误网址即可。例如,如果您导航到 www.yahoo.com 并在该网站上点击几下,您将看到一些查询字符串参数等。但是,在 Android 上这总是如此返回来源属性 www.yahoo.com Xamarin 为此创建了一个临时修复程序,但是您必须包含并实现自己的自定义渲染器以克服此问题。