我正在開發一個windows phone應用程序。 在頁面中,我放置了一個按鈕,然後在該按鈕上點擊打開瀏覽器,然後重定向到我們的網站頁面進行一些操作。有很多網頁。在最後一個網頁中,我們添加了一個「關閉」按鈕。在關閉按鈕中,單擊我想關閉網頁瀏覽器並在打開網頁瀏覽器之前以最後一個狀態打開應用程序。我怎樣才能做到這一點 ?如何從瀏覽器的windows phone打開應用程序
謝謝。
我正在開發一個windows phone應用程序。 在頁面中,我放置了一個按鈕,然後在該按鈕上點擊打開瀏覽器,然後重定向到我們的網站頁面進行一些操作。有很多網頁。在最後一個網頁中,我們添加了一個「關閉」按鈕。在關閉按鈕中,單擊我想關閉網頁瀏覽器並在打開網頁瀏覽器之前以最後一個狀態打開應用程序。我怎樣才能做到這一點 ?如何從瀏覽器的windows phone打開應用程序
謝謝。
我會將應用程序中的按鈕稱爲「應用程序按鈕」,並將網頁中的按鈕稱爲「關閉按鈕」。
將名爲webBrowser1的WebBrowser控件添加到Windows Phone應用程序。使其覆蓋整個屏幕,並將其可見性屬性設置爲摺疊。
在應用程序按鈕的單擊事件,使用
webBrowser1.Visibility = System.Windows.Visibility.Visible;
webBrowser1.Navigate(new Uri("http://yourwebsite.com/page");
會顯示Web瀏覽器並定位到第一頁上你的網站。
將網站最後一頁上的關閉按鈕導航到您網站上的新頁面,稱爲「close.html」或任何您想要的。在JavaScript中,這看起來像
<Button onclick="window.location.href='http://yourwebsite.com/close.html';">
回到應用程序:在webBrowser1的導航事件中使用,
if (e.Uri.ToString().Contains("close.html"))
{
webBrowser1.Visibility = System.Windows.Visibility.Collapsed;
}
當你點擊你的網站的最後一頁上的按鈕,將定位爲「 close.html」。發生這種情況時,Web瀏覽器的導航事件觸發。由於每次更改頁面時都會觸發此事件,因此您需要檢查新網址是否包含「close.html」,即關閉按鈕導航到的頁面。如果確實如此,Web瀏覽器將被隱藏,您將再次看到您的應用程序。
。
(在VB中,該代碼將是)
webBrowser1.Visibility = System.Windows.Visibility.Visible
webBrowser1.Navigate(New Uri("http://yourwebsite.com/page")
而且
If e.Uri.ToString.Contains("close.html")
webBrowser1.Visibility = System.Windows.Visibility.Collapsed
End If
編輯:我在用通用術語思考我寫答案時,並不記得你是專門詢問webbrowser(因此,使用webbrowsertask
啓動器)。謝謝@克勞斯指出OAuth的情況。所以,我正在修改我的回答,解釋說這是可能的,並且還提到了使用啓動器的問題,因爲無法保證返回到啓動器應用程序中的給定點(因爲由於回調)。
它是不是可能實現這一般條款。也就是說,有一個應用程序A打開另一個應用程序B,並從應用程序B打開關閉它並打開-A。有很多原因,我認爲這是不可能的: - 如何得到應用程序的地址/引用A.目前沒有API。 - 沒有內容處理程序/插件,第三方可以通過網頁瀏覽器註冊應用程序。 - 最重要的是,安全,安全,安全。這將爲網絡攻擊打開大門。
但是,對於您作爲Web瀏覽器的應用程序B的要求,可以使用任務啓動器WebBrowserTask。正如@claus所暗示的那樣,您可以在最後一頁中使用Window.close()
javascript關閉瀏覽器,從而揭示它下面的應用程序(,希望爲,A)。這裏的問題是,如果用戶在瀏覽器啓動後(並在瀏覽器關閉之前)打開一個應用程序(我們稱之爲C),並且用戶沒有關閉C,那麼當瀏覽器關閉時,用戶將返回到C,而不是發射器的應用程序!根據您的要求,這不是您想要的。
所以,如果你想實現的樣的效果你描述你的問題,它是最好的,你嵌入您的應用程序的Web瀏覽器(如一個全屏幕應用程序),並從有利點您可以通過Javascript在網絡瀏覽器(控制)和(主機)應用程序之間進行交互。
希望這會有所幫助。
作爲例子,利用的OAuth 「停止URI」 當用戶被成功地認證了。如果這是必要的,嵌入式網頁瀏覽器是一個**好**的解決方案。 –
@ClausJørgensen你是對的。我想知道爲什麼我在回答這個問題時用通用的術語思考。這顯然是可能的:)但是,我看到了應用程序外導航的問題,因爲在瀏覽器啓動之後和關閉之前,用戶可能會導航到另一個應用程序(C)。它的應用程序C是在後臺,然後當瀏覽器關閉它將返回到它,而不是應用程序A.所以,爲了要求返回到啓動程序的應用程序,我認爲一個嵌入式瀏覽器控件可以確保。 –