13

Web ページを開くときにいくつかのヘッダーを渡したいです。今、私は次のようなことをしています:) browserIntent = new Intent(Intent.ACTION_VIEW,Uri.parse(data.link)); startActivity(browserIntent;

browserIntentを使用してヘッダーを渡す方法がわからないため、今は行き詰まっています。browserIntent.putExtra() を使用してみましたが、機能しません。

誰でも助けてください.!!

4

2 に答える 2

21

これも、この 2 日間で最大の疑問でした。そして見つけた!!!

ヘッダー情報を保存した Map オブジェクトがあります。次に、次のとおりです。

Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
Bundle bundle = new Bundle();
if(mExtraHeader!=null){
 for(String key: mExtraHeader.keySet()){
  bundle.putString(key, mExtraHeader.get(key));
 }
}
i.putExtra(Browser.EXTRA_HEADERS, bundle);
startActivity(i);

1つの問題は...これはデフォルトのブラウザーでのみ機能し、他のブラウザーには Browser.EXTRA_HEADERS がないと思います。リソース: http://gitorious.org/rowboat/packages-apps-browser/blobs/a563d09392905140893d7a017dd63721577e1953/src/com/android/browser/BrowserActivity.java

于 2011-07-13T21:58:54.290 に答える
2

サトシが推測したように、これは Chrome では機能しません。ヘッダーを渡す必要がある場合は、独自の WebView を作成し、ヘッダーのマップを使用して URL を読み込む必要があります。mWebView が WebView への参照であると仮定します。

Map<String, String> headers = new HashMap<>();
headers.put("referer", "http://some-referer");
mWebView.loadUrl(mUrl, headers);
于 2014-03-20T14:30:20.360 に答える