上一个UI项目基本完工后,师傅给了个新的任务,研究怎么把浏览器加载到ui中,
由于使用ie内核太卡了,于是就上stackoverflow上查查有哪些解决方案,最后比较了下选择了CEF(Chromium Embedded Framework) 发现这里面的坑太多了。。。
言归正传:首先上github看看它的demo,发现了一个https://github.com/cefsharp/CefSharp.MinimalExample
作者就是cefsharp.wpf的作者,当我信心满满的下载下来之后,一运行发现一堆问题。。
首先是 引用,引用加载上之后发现引用不了命名空间。。
公司的网络太坑了,用nuget下载个引用根本下不下来于是回学校再研究吧。。
回学校下载好一运行竟然成功了。。。
第二天带着运行好的程序回公司,,还是用不了,就是其中一个dll报错,在网上找解决方案找了一天还是没找到。
最后用公司的网络墨迹的下载了nuget上的cefsharp.wpf的版本,把引用里的dll等东西拷到项目的release目录下就成功。。。
这说明网络的质量关乎着效率。。。
Html里面存的是百度LBS云里面的源代码,如果想自己添加麻点在地图里,可以在后台添加!记住一定要添加样式这个字段,并且创建表的时候要选择可检索,HTML文件里吧AK和表的号换掉,即可。~有可能还是不显示 正常的,。。。
由于使用ie内核太卡了,于是就上stackoverflow上查查有哪些解决方案,最后比较了下选择了CEF(Chromium Embedded Framework) 发现这里面的坑太多了。。。
言归正传:首先上github看看它的demo,发现了一个https://github.com/cefsharp/CefSharp.MinimalExample
作者就是cefsharp.wpf的作者,当我信心满满的下载下来之后,一运行发现一堆问题。。
首先是 引用,引用加载上之后发现引用不了命名空间。。
公司的网络太坑了,用nuget下载个引用根本下不下来于是回学校再研究吧。。
回学校下载好一运行竟然成功了。。。
第二天带着运行好的程序回公司,,还是用不了,就是其中一个dll报错,在网上找解决方案找了一天还是没找到。
最后用公司的网络墨迹的下载了nuget上的cefsharp.wpf的版本,把引用里的dll等东西拷到项目的release目录下就成功。。。
这说明网络的质量关乎着效率。。。
下面的代码是在Nuget上下载的后的简单demo
,webview的部分在下面这个xaml文件里~
<pre name="code" class="html"><Window x:Class="map.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525"
xmlns:cefSharp="clr-namespace:CefSharp.Wpf;assembly=CefSharp.Wpf"
>
<Grid Name="g">
<Grid.RowDefinitions>
<RowDefinition Height="8*"></RowDefinition>
<RowDefinition Height="*"></RowDefinition>
</Grid.RowDefinitions>
<cefSharp:WebView x:Name="aaa" >
</cefSharp:WebView>
<Button Grid.Row="1" Click="Button_Click">Submit</Button>
</Grid>
</Window>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using CefSharp.Wpf;
using System.IO;
using System.Reflection;
namespace map
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
this.Loaded += delegate
{
Assembly _assembly = Assembly.GetExecutingAssembly(); \\要用assembly来加载html文件是因为有可能webview还没加载先load就不显示地图了
Stream _imageStream = _assembly.GetManifestResourceStream("map.HTMLPage1.html");
StreamReader _textStreamReader = new StreamReader(_imageStream, Encoding.UTF8);
// aaa.LoadHtml(File.ReadAllText(@".\HTMLPage1.html"), @".\HTMLPage1.html");
aaa.LoadHtml(_textStreamReader.ReadToEnd(), "map.HTMLPage1.html");
///aaa.Load("HTMLPage1.html");
};
}
private void Button_Click(object sender, RoutedEventArgs e) {
aaa.Load("www.baidu.com"); }
}
}
html文件里是百度地图api上的html源代码 用来在ui中显示百度地图~此处没放上来~
html的源代码直接在百度LBS云里面下载。Html里面存的是百度LBS云里面的源代码,如果想自己添加麻点在地图里,可以在后台添加!记住一定要添加样式这个字段,并且创建表的时候要选择可检索,HTML文件里吧AK和表的号换掉,即可。~有可能还是不显示 正常的,。。。