0

<intent-filter>マニフェスト ファイルに追加することで、startActivity() を処理するアクティビティを静的に登録できます。しかし、アクティビティの実行中に動的に登録するにはどうすればよいでしょうか? たとえば、ボタンがクリックされた後に登録するにはどうすればよいですか?

私のアプリケーションでは、ユーザーが URL を指定する必要があり、この URL へのブラウジング リクエストを処理したいと考えています。したがって、この URL は実行時にしか取得できません。registerReceiver() を調べたところ、startActivity() ではなく sendBroadcast() にのみ役立つことがわかりました。

実はサーバーでOAuth認証を行っており、OAuth後に活動を再開したい。<server-api-path>/auth/displaycodeだから私はパスを処理したい。

カスタム URL スキームを使用して、マニフェスト ファイルで静的に処理できることはわかっていますが、1によると、これは適切な方法ではありません。

午後にドキュメントを検索した後も、まだこれを理解できません。どんな助けでも大歓迎です。

4

1 に答える 1

2

新しい Activity 要素を動的に登録したり、実行時に AndroidManifest の内容を変更したりする API はありません。WebViewOAuth コールバックを受信するための最良のオプションは、ブラウザまたは外部アプリケーションを起動して返そうとするのではなく、を含む単一のアクティビティを実装することです。

WebView添付して URL トラフィックを監視しWebViewClient、 や などのメソッドを使用して、前のアクティビティに戻るタイミングや他のアクションを実行するタイミングを決定できますonPageStarted()shouldOverrideUrlLoading()このすべてをコードで行っているため、検索する URL は動的である可能性がありますIntentWebView

HTH

于 2012-06-04T14:10:33.613 に答える