Xamarin 不允许加载本地资源文件
Posted
技术标签:
【中文标题】Xamarin 不允许加载本地资源文件【英文标题】:Xamarin Not allowed to load local resource file 【发布时间】:2018-03-16 00:29:22 【问题描述】:我在加载页面 File.html 时遇到问题。我想在 html 中加载我的地图,但模拟器没有显示。我得到了错误:
" [INFO:CONSOLE(0)] "不允许加载本地资源:file:///android_asset/HTMLPage1.html",来源:data:text/html,chromewebdata(0)"
" I/chromium(11080): [INFO:CONSOLE(0)] "不允许加载本地资源:file:///android_asset/webkit/android-weberror.png",来源:data:text/html ,chromewebdata (0) "
在模拟器页面上显示“网页不可用”
Xaml 文件:
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Mapaht"
x:Class="Mapaht.Mapahet">
<WebView
x:Name="webviewjava"></WebView>
</ContentPage>
页面文件
public Mapahet()
InitializeComponent();
webviewjava.Source = "file:///android_asset/HTMLPage1.html";
【问题讨论】:
developer.xamarin.com/guides/xamarin-forms/user-interface/… 我试过了,还是不行 如果您在 Forms 的 WebView 中使用file:///android_asset
加载内容,那么您没有遵循我链接的指南,file:///android_asset
用于 Android WebView
小部件,而不是 Form 的 @ 987654327@
【参考方案1】:
我在加载页面 File.html 时遇到问题。
执行以下步骤,对我来说效果很好:
XAML:
<WebView
x:Name="webviewjava"
HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
/>
PCL 中的接口:
public interface IBaseUrl
string Get();
在Android中实现这个接口:
[assembly: Dependency(typeof(BaseUrl_Android))]
namespace FormsWebview.Droid
public class BaseUrl_Android : IBaseUrl
public string Get()
return "file:///android_asset/";
在Assets
文件夹中加载本地资源文件:
public MainPage()
InitializeComponent();
var baseUrl = DependencyService.Get<IBaseUrl>().Get();
string Url = $"baseUrllocal.html";
webviewjava.Source = Url;
【讨论】:
【参考方案2】:您在设置内容视图之前获取 WebView,因此 wv 可能为空。
protected override void OnCreate (Bundle savedInstanceState)
base.OnCreate (savedInstanceState);
SetContentView (Resource.Layout.webview);
WebView wv;
wv = FindViewById<WebView>(Resource.Id.webviewjava);
wv.LoadUrl("file:///android_asset/HTMLPage1.html");
您需要在可以访问互联网的 AndroidMainfest.xml 文件中拥有权限:
<uses-permission android:name="android.permission.INTERNET" />
【讨论】:
以上是关于Xamarin 不允许加载本地资源文件的主要内容,如果未能解决你的问题,请参考以下文章
Internet 浏览器中的文件 URL“不允许加载本地资源”
Internet 浏览器中的文件 URL“不允许加载本地资源”
不允许加载本地资源图像文件:/// C:/ uploads / images
Cordova 10 和 Android SDK 30:无法访问本地文件(“不允许加载本地资源:file:///storage/emulated/0/Android/data...”)