2

私はWindowsPhoneアプリケーションを開発しています。ページにボタンを配置し、このボタンをクリックしてWebブラウザーを開き、いくつかのプロセスのためにWebサイトのページにリダイレクトします。多くのウェブページがあります。前回のウェブページに「閉じる」ボタンを追加しました。[閉じる]ボタンをクリックして、Webブラウザーを閉じ、Webブラウザーを開く前に、最後の状態でアプリケーションを開きます。これどうやってするの ?

ありがとう。

4

2 に答える 2

6

アプリ内のボタンを「アプリボタン」、Webページ内のボタンを「閉じるボタン」と呼びます。

webBrowser1というWebBrowserコントロールをWindowsPhoneアプリに追加します。画面全体を覆うようにし、VisibilityプロパティをCollapsedに設定します。

アプリボタンのクリックイベントで、

webBrowser1.Visibility = System.Windows.Visibility.Visible;
webBrowser1.Navigate(new Uri("http://yourwebsite.com/page");

Webブラウザーを表示し、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ブラウザのNavigatingイベントが発生します。このイベントはページを変更するたびに発生するため、新しいURLに「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
于 2012-09-08T23:14:05.310 に答える
1

編集:私が答えを書いたとき、私は一般的な言葉で考えていましたが、あなたがウェブブラウザについて具体的に質問していることを覚えていませんでした(したがって、webbrowsertaskランチャーを使用しています)。OAuthの状況を指摘してくれた@Clausに感謝します。だから、私は答えを修正して、それが可能であることを説明し、ランチャーアプリの特定のポイントに戻る保証がないため、ランチャーの使用に関する問題についても言及します(コールバック)。

一般的にこれを達成することはできません。つまり、別のアプリケーションBを開くアプリケーションAがあり、アプリケーションBからAを閉じて開きます。それが不可能だと思う理由はたくさんあります。-アプリケーションへのアドレス/参照を取得するにはどうすればよいですか。A。現時点ではそのためのAPIはありません。-サードパーティがアプリをウェブブラウザに登録できるコンテンツハンドラ/プラグインはありません。-最も重要なのは、セキュリティ、セキュリティ、セキュリティです。これにより、Webからの攻撃への扉が開かれます。

ただし、アプリケーションBがWebブラウザーであるという要件については、タスクランチャーWebBrowserTaskを使用することができます。@clausが示唆しているようWindow.close()に、最後のページにjavascriptを入れてブラウザーを閉じ、その下にあるアプリを表示することができます(できれば、A)。ここでの問題は、ユーザーがブラウザーの起動後(およびブラウザーを閉じる前)にアプリを開いて(Cと呼びましょう)、ユーザーがCを閉じない場合、ブラウザーを閉じると、ユーザーはランチャーアプリではなくCに戻されます!これは、要件に基づいて必要なものではありません。

したがって、質問で説明しているような効果を実現したい場合は、アプリケーションにWebブラウザーを(フルスクリーンアプリとして)埋め込み、その見晴らしの良い場所から、 Webブラウザ(コントロール)と(ホスト)アプリ(Javascript経由)。

うまくいけば、これが役立ちます。

于 2012-09-08T06:20:57.380 に答える