开发Metro版浏览器
Windows 8中的Metro程序是一种全屏应用程序,专门针对触摸屏设备进行优化。Windows 8 Developer Preview中已经包含了一些Metro应用:
像微软自己的一些程序,如IE、Windows Store等都有Metro版本,在即将发布的Windows 8消费者预览版中,估计会有更多的Metro应用,到时Windows Store也会正式启用。
在PowerShell 3.0中使用命令Get-AppxPackage –AllUsers可以查看当前安装了哪些Metro应用:
可以看到,Metro程序安装在C:\Program Files\Applications
该文件夹没有权限,不能在资源管理器中查看,故使用PowerShell:
我也开始开发一些Metro程序,为公司产品的Metro版本试水。
这次我开发的是一个Metro版本的浏览器,类似于IE 10。
最终运行效果:
1、使用VS 11 Developer Preview创建一个Metro项目:
2、界面布局很简单,第一行地址栏、工具按钮等,下面是预览窗口:
3、WinRT中没有WebBrowser控件,取而代之的是WebView,MSDN上有关于此控件的大致介绍。
WebView有个Source属性,可以设置为具体的URL,如http://www.bing.com,这样WebView就会跳转到指定URL。
4、WebView使用的是IE 10的内核,不支持任何插件(Flash、Silverlight),只能用HTML5。
要先设置下Internet属性,允许跨域浏览,允许脚本等。
5、WebView有两个方法比较常用
{
if (!v_Url.StartsWith("http://") && !v_Url.StartsWith("https://"))
{
v_Url = "http://" + v_Url;
}
if (this.fn是否是有效Url(v_Url))
{
this.wv.Navigate(new Uri(v_Url));
}
else
{
this.wv.NavigateToString(@"<html><h3>404</h3></html>");
}
}
Navigate用于跳转到指定URL,NavigateToString用于显示执行的HTML,这里我是显示一个自定义的404页面。
6、模拟了网页后退、前进的效果,没有做的很严格。具体实现看下源码就明白了。
7、遇到一个比较棘手的问题是,在WebView中点击一个跨域的链接时,会打开Metro版的IE10显示,不能继续在WebView中显示,若有朋友解决了这个问题,请告之。
小结:
我写的这个Metro版本的浏览器非常简单,仅仅实现了最基本的现代浏览器应该具有的功能,主要想测试一下Metro程序的效果。
个人还是非常喜欢Metro应用,如果使用平板操作将会非常舒服。当Windows 8正式发布时,Metro应用将会遍地开花,希望Windows 8能将平板更加普及一下,丰富企业应用、娱乐应用的开发方式。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库