2010-09-20 21 views
7

我想在打開網頁時傳遞一些標題。現在,我正在做類似: browserIntent = new Intent(Intent.ACTION_VIEW,Uri.parse(data.link)); startActivity(browserIntent);使用瀏覽器意圖時傳遞標題

現在我卡住了,因爲我不知道如何使用browserIntent傳遞標頭。我試過使用browserIntent.putExtra(),但它不起作用。

任何人都可以請幫忙。

回答

11

這也是我最近2天的最大問題!我發現它!

我有一個地圖對象,我存儲標題信息。然後執行以下操作:

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); 

的一個問題是......我想這將只與默認瀏覽器,其他瀏覽器也不會Browser.EXTRA_HEADERS我想。資源:http://gitorious.org/rowboat/packages-apps-browser/blobs/a563d09392905140893d7a017dd63721577e1953/src/com/android/browser/BrowserActivity.java

+0

我在Android 6.0.1上使用Chrome 50進行的最新測試與EXTRA_HEADERS一起運行良好。 – keineantwort 2016-05-31 08:05:38

+0

它爲我工作的鉻57。但我更新了我的鉻到61,現在它不工作! :| – Mansour 2017-10-16 12:28:17

+0

@Mansour你發現如何解決這個問題? – 2017-12-12 17:18:11

1

正如Satoshi猜測的,這不適用於Chrome。如果您需要傳遞標題,則需要創建自己的WebView並使用標題地圖加載url。假設mWebView是對您的webview的引用。

Map<String, String> headers = new HashMap<>(); 
headers.put("referer", "http://some-referer"); 
mWebView.loadUrl(mUrl, headers); 
相關問題