我正在使用Xamarin开发Android应用程序,但希望下面的问题更为通用,也可以由不熟悉Xamarin的人来回答。 该应用程序非常简单,并且有一个主页面,其中列表中的用户可以单击任何项目。 这些项目代表产品,所有相关信息都存储在字典中(关键是产品名称,值是产品的一些信息)。 在可用字段中,我还添加了网站的URL,用户可以在该URL中访问有关产品的更多信息。 该应用程序有一个WebView来显示应用程序内的页面。
我可以使用以下方式显示网页:
web = FindViewById<WebView>(Resource.Id.webView);
web.SetWebViewClient(new myWebViewClient());
web.Settings.JavaScriptEnabled = true;
web.LoadUrl(item.Link);
用户选择的项目/产品是具有保存在item.Link中的URL的项目对象。 问题是用户需要Web连接才能加载页面。所以我考虑将整个HTML代码保存到字符串中,这样即使没有可用的连接,用户也可以看到内容。我这样做是通过:
WebClient wc = new WebClient();
using (Stream st = wc.OpenRead(web.Url))
{
using (StreamReader sr = new StreamReader(st, Encoding.UTF8))
{
html = sr.ReadToEnd();
}
}
然后字典中的每个项目都有一个字段item.Html和页面的源代码。 我可以使用以下代码可视化页面:
web = FindViewById<WebView>(Resource.Id.webView);
web.SetWebViewClient(new myWebViewClient());
web.Settings.JavaScriptEnabled = true;
//web.LoadUrl(item.Link);
web.LoadData(item.Html, "text/html", "UTF-8");
问题是,查看器不会以与web.LoadUrl(item.Link)相同的方式显示页面(即您在任何Web浏览器中看到的页面)但是它更加混乱和难以导航。 我究竟做错了什么?有没有更好的方法来实现我的目标?