2013-07-24 14 views
13

WebView üstbilgilerim, kullanıcının yalnızca normal tarayıcıyı kullanıyor ve WebView kullanmıyor gibi görünmesini sağlamaya çalışıyorum. Üstbilgileri toplayabildiğim kadarıyla, WebView ayrıca uygulamalar paket adını içeren bir X-İstek-Birlikte gönderir. Bunu engellemenin bir yolu var mı?Android: WebView'de X-Talep Edilen-Başlığı Engelle'yi Devre Dışı Bırakma

+1

+1 genellikle-istenen x ile ajax isteği algılamak için kullanılır, tür android _every_ istek, ajax olmamasına başlıklarını gönderir şeyler hortumlar . – virtualeyes

+1

Bu, http://stackoverflow.com/questions/7610790/add-custom-headers-to-webview-resource-requests-android – jlindenbaum

+0

@ KingFu gibi bir çok ses çıkarır - X-Request-With üstbilgisini tamamen silebildiniz mi? Çünkü tüm cevaplar çoğunlukla nasıl silineceği veya devre dışı bırakılacağı hakkında üstbilginin nasıl değiştirileceği veya düzenlendiği ile ilgilidir. – Manisha

cevap

1

Android API için bunu yapabilir> 11

public class AndroidMobileAppSampleActivity extends Activity { 
Map<String, String> extraHeaders = new HashMap<String, String>(); 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    WebView mainWebView = (WebView) findViewById(R.id.mainWebView); 
    // must define X-Requested-With, if header missing, then webview will 
    //add your package name 
    extraHeaders.put("X-Requested-With", "your presentation"); 
    WebSettings webSettings = mainWebView.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    mainWebView.setWebViewClient(new MyCustomWebViewClient()); 
    mainWebView.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY); 
    mainWebView.loadUrl("http://www.somesite.com", extraHeaders); 
} 

private class MyCustomWebViewClient extends WebViewClient { 
    @Override 
    public WebResourceResponse shouldInterceptRequest(WebView view, 
     String url) { 
     // TODO Here you must overwrite request using your 
     // HttpClient Request 
     // and pass it to new WebResourceResponse 
     return new WebResourceResponse(response.ContentType, response.ContentEncoding, responseStream); 
    } 
    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     // Apply again your heades here 
     view.loadUrl(url, extraHeaders); 
     return true; 
    } 
} 
} 
+1

Bu, "X-Requested With" başlığının değerini değiştirebileceğimiz anlamına gelir. Tamamen sileriz ya da atabilir miyiz? – Manisha