none
關於webbrowser在emulator上和實體行動裝置上執行結果的問題 RRS feed

  • 問題

  •  

    HI,

     

    最近在寫行動裝置的應用程式

     

    其中寫了一個Form如下

     

     

    Code Snippet

            public webForm(Form menufrm , Bitmap titleBar , string address)
            {
                InitializeComponent();

                menuForm = menufrm;
                titleImg.Image = titleBar;
                try
                {
                    webAppBrowser.Navigate(new Uri(address));
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
               
            }

     

     

    也就是另外有一個選單的Form會傳遞網址給這個Form

     

    然後利用System.Windows.Forms下的webbrowser去瀏覽該網頁

     

    我利用emulator+activesync的時候,可以成功的瀏覽到網頁

     

    但是實際利用手機做測試的時候,即使已經連上網路,一般IE也能瀏覽到網頁

     

    在程式中卻無法連上該網頁,不曉得是什麼問題

     

    請多指導,謝謝Stick out tongue

    2008年9月14日 下午 09:12

解答

  • 有試過做一個乾淨的專案,就拉一個webbrowser,Form_Load裡面去Load你要的網頁測試過嗎?

     

    2008年9月15日 下午 03:46
    版主

所有回覆

  • Hi,

    你可以把手機用ActiveSync連線起來,之後部屬到手機上,這樣來偵錯會比較好找問題

     

    2008年9月15日 上午 02:20
    版主
  • HI,

     

    我有這樣試過,但是並沒有runtime的錯誤

     

    利用catch顯示出來的錯誤訊息是「無法顯示或下載網頁,因為連線已中斷。請檢查連線,稍後再試一次」

     

    但是手機這時候已經連線(不管是藉由ActiveSync還是無線網路)

     

    同時間使用IE瀏覽器也能正常連上網頁

     

    所以還是不清楚為什麼會這樣

    2008年9月15日 上午 04:32
  • Hi

    你可以先用PIE確定一下你要連線的網頁在PIE上可以正常執行/顯示,之後檢查程式裡面確定一下address的參數有沒有錯誤。

     

    2008年9月15日 上午 05:33
    版主
  • HI,

     

    我已經確認過address的參數沒有錯誤

     

    另外我也直接嘗試給予參數"http://www.google.com.tw"

     

    結果就算連接google也會出現相同的問題

     

    所以我想應該不是參數有錯

     

    而PIE下連接是沒有問題的

     

     

     

    另外在webbrowser的文件庫資料中,有提及.NET Framework 安全性

     

    不曉得是否與這個有關?

     

    http://msdn.microsoft.com/zh-tw/library/system.windows.forms.webbrowser(VS.80).aspx

    2008年9月15日 上午 07:43
  • 程式看起來沒有甚麼明顯的錯誤,只是我不是很懂menuForm = menufrm這行是做甚麼用的;會不會有資源被釋放掉的問題?

    2008年9月15日 下午 03:20
    版主
  • HI,

     

    menuForm = menufrm;

     

    是用來記錄上一個Form的參數

     

    方便到時可以利用menuForm.show()來回到原本的Form

     

     

    因為emulator上可以正常執行,只有外接的PPC會連接不上

     

    不知道是不是PPC本身的問題,但手邊沒多餘的PPC做測試,所以不清楚...

     

    另外就是上面提到安全性的問題

     

    不曉得會不會影響程式在PPC上執行的權限,而導致webbrowser無法使用網路

    2008年9月15日 下午 03:40
  • 有試過做一個乾淨的專案,就拉一個webbrowser,Form_Load裡面去Load你要的網頁測試過嗎?

     

    2008年9月15日 下午 03:46
    版主
  • HI,

     

    剛剛測試了一下

     

    Code Snippet

            public Form1()
            {
                InitializeComponent();
                try
                {
                    webBrowser1.Navigate(new Uri("http://www.google.com.tw"));
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }

     

     

    也是不能

     

    而且奇怪的是,因為我沒有做dispose的動作,是在VS中停止偵錯來結束程式

     

    結果後來連PIE都不能用了,也出現一樣的問題

     

    ActiveSync還是保持連接的狀態

     

     

    所以可能是PPC的問題?

     

     

    =====================================================================================

     

    剛剛因為PPC變得無法連線,我就在設定中使用自動配置重新設定

     

    結果一切都好了

     

    連程式都可以跑了

     

    sorry bauann

     

    讓你陪我演了一天的鬧劇

    2008年9月15日 下午 04:15