ユーザーが通常のブラウザーを使用しているだけで、WebView を使用していないように WebView ヘッダーを表示しようとしています。私が収集できるヘッダーは、WebView がアプリのパッケージ名を含む X-Requested-With ヘッダーも送信することを除けば同一です。これを防ぐ方法はありますか?
質問する
12379 次
1 に答える
4
Android API> 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;
}
}
}
于 2015-04-01T16:00:10.807 に答える