want to open Link in external browser of WP7
The architecture is like:
On click of a button an HTML page opens which contains a link in it. On clicking the links I want to open it in external (default) browser of WP7 such that the application closes and link opens externally. How can I implement this? Added this control in xaml file:<phone:WebBrowser Name="browser" Margin="0,78,0,0" />
On button click:
private void Information_Loaded(Object sender,RoutedEventArgs e)
{
Assembly assembly = Assembly.GetExecutingAssembly();
using (Stream stream = assembly.GetManifestResourceStream("index_en.html"))
{
using (StreamReader reader = new StreamReader(stream))
{
开发者_开发知识库 string html = reader.ReadToEnd();
browser.NavigateToString(html);
}
}
Now index_en.html has a link which is to be opened in external browser.
Normally, you would do so using Target
property on <a>
tag. But, in WP7
(at least in Emulator), this does not work.
What you could do is intercept using Navigating
event something like following:
void WebBrowser1_Navigating(object sender, NavigatingEventArgs e)
{
if (IsSupposedToOpenInPhoneBrowser(e.Uri))
{
e.Cancel = true;
WebBrowserTask task = new WebBrowserTask();
task.URL = e.Uri.ToString();
task.Show();
}
}
You can use the WebBrowserTask
to launch the browser.
I've found that you need to escape the URL you pass to it though :(
You can use something like that
private void Button_Click_1(object sender, RoutedEventArgs e)
{
WebBrowserTask webBrowserTask = new WebBrowserTask();
webBrowserTask.Uri = new Uri("http://www.someUrl.com");
webBrowserTask.Show();
}
精彩评论