我有一个用于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,感谢您的帮助。
答案 0 :(得分:0)
此问题应使用类似此线程的shouldInterceptRequest
替代实现WebViewClient。
Kitkat kills: Not allowed to load local resource: file:///android_asset/webkit/android-weberror.png