Windows Phone 7 アプリの一部として、いくつかの静的 Web ページがあります。ただし、Web 上の非ローカル サイトを参照するリンクが Web ブラウザを起動できる、つまりWebBrowserTask
. また、WebBrowser コントロールが XAML ページに埋め込まれていることを考えると、(たとえば JavaScript を使用して) WebBrowser コントロール内からページの動作を呼び出すことができれば素晴らしいことです。
これは可能ですか?
Windows Phone 7 アプリの一部として、いくつかの静的 Web ページがあります。ただし、Web 上の非ローカル サイトを参照するリンクが Web ブラウザを起動できる、つまりWebBrowserTask
. また、WebBrowser コントロールが XAML ページに埋め込まれていることを考えると、(たとえば JavaScript を使用して) WebBrowser コントロール内からページの動作を呼び出すことができれば素晴らしいことです。
これは可能ですか?
私が理解しているように、WP7 Browser で JavaScript を起動する必要があります。いくつかのセキュリティ制限があります。しかし、ほとんどの単純なものはうまく機能します。「InvokeScript」、WebbrowserControlの IsScriptEnable 、および「eval」をご覧ください。
public partial class MainPage : PhoneApplicationPage
{
public MainPage()
{
InitializeComponent();
Wb.Navigated += new EventHandler<System.Windows.Navigation.NavigationEventArgs>(Wb_Navigated);
MouseLeftButtonDown += new MouseButtonEventHandler(MainPage_MouseLeftButtonDown);
Wb.NavigateToString("<html><body><form action='http://google.com/'></form></body></html>");
}
void Wb_Navigated(object sender, System.Windows.Navigation.NavigationEventArgs e)
{
Wb.InvokeScript("eval", "document.forms[0].submit();"); // Throws 80020101
}
private void MainPage_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
Wb.InvokeScript("eval", "document.forms[0].submit();"); // Works
}
}