開發Metro版瀏覽器

作者: MYM]Brooks  來源: 博客園  發布時間: 2012-03-24 14:35  閱讀: 6817 次  推薦: 4   原文鏈接   [收藏]  

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有兩個方法比較常用 

private void fn跳轉到指定Url(string v_Url)
{
    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用于跳轉到指定URLNavigateToString用于顯示執行的HTML,這里我是顯示一個自定義的404頁面。

6、模擬了網頁后退、前進的效果,沒有做的很嚴格。具體實現看下源碼就明白了。

7、遇到一個比較棘手的問題是,在WebView中點擊一個跨域的鏈接時,會打開Metro版的IE10顯示,不能繼續在WebView中顯示,若有朋友解決了這個問題,請告之。

小結:

我寫的這個Metro版本的瀏覽器非常簡單,僅僅實現了最基本的現代瀏覽器應該具有的功能,主要想測試一下Metro程序的效果。

個人還是非常喜歡Metro應用,如果使用平板操作將會非常舒服。當Windows 8正式發布時,Metro應用將會遍地開花,希望Windows 8能將平板更加普及一下,豐富企業應用、娛樂應用的開發方式。

4
0
 
標簽:Windows 8 Metro
 
 

文章列表

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()