Xamarin不允许加载本地资源文件

时间:2017-10-04 14:45:08

标签: javascript android html google-maps xamarin

我在加载页面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“,source:data:text / html ,chromewebdata(0)“

在模拟器页面上显示“WebPage not available”

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";
    }

2 个答案:

答案 0 :(得分:0)

在设置“内容”视图之前,您将获得WebView,因此wv可能为null。

 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" />

答案 1 :(得分:0)

  

我在加载页面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 = $"{baseUrl}local.html";
    webviewjava.Source = Url;
}