Xamarin Android Webview:不允许加载本地资源“ file:///android_asset/*.css”源:(1)?

时间:2019-04-09 19:08:34

标签: android xamarin webview assets

我有一个用于CSS的小CSS文件,用于覆盖WebView中加载的网站上的CSS。我想在本地加载它,而不需要在线访问它。当文件上传到临时文件主机时,我已经使JavaScript可以完美运行,因此它可以正常工作,但是有关权限的某些规定不允许我将其用作资产。

我尝试设置权限,更改WebView的设置以始终允许MixedContentMode,尝试使用LoadData等,但始终会引发“不允许”问题。该资产具有AndroidAsset构建操作。

string jsToInject = "javascript: var link=document.createElement('link');link.href='file:///android_asset/newsOverride.css';link.type ='text/css'; link.rel ='stylesheet';document.getElementsByTagName('head')[0].appendChild(link);";

view.LoadUrl(jsToInject);

将link.href字段设置为Web上某处托管的文件时,它将按预期加载CSS。但是当选择它作为资产时,它只会抛出 I/chromium(11626): [INFO:CONSOLE(1)] "Not allowed to load local resource: file:///android_asset/newsOverride.css", source: (1)

我能找到的所有错误在于Xamarin Forms,而不是Xamarin Android,感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

此问题应使用类似此线程的shouldInterceptRequest替代实现WebViewClient。 Kitkat kills: Not allowed to load local resource: file:///android_asset/webkit/android-weberror.png