2016-01-18 62 views
-1

我想創建一個安卓應用。當我點擊ListView中的一行時,它應該轉到一個網站。網站所有者如何知道我正在使用Android應用程序訪問他的網頁?

ListView我有我的小部件,如TextViewImageView等.. 對於如: 「www.amazon.com」

我嘗試以下,

rowView.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Intent i = new Intent(Intent.ACTION_VIEW); 
      i.setData(Uri.EMPTY.parse("www.amazon.com")); 
      context.startActivity(i); 
     } 
    }); 

它成功重定向到「www.amazon.com」。

在這裏,亞馬遜人如何知道人們正在使用我的應用程序訪問他們的網站?

+0

你是什麼意思的「親密」? – Dusan

+0

也許你可以檢查用戶代理http://stackoverflow.com/questions/8515161/detecting-device-type-in​​-a-web-application – ccheneson

回答

0

我從來沒有使用過android應用程序,所以我不知道確切的實現。 但你可以做的是手動設置你的webrequest的頭部,所以你看起來像一個桌面瀏覽器。如果您使用Chrome作爲瀏覽器,您可以在網絡下的開發人員工具窗口中看到您的標題爲

2

當您單擊鏈接時,瀏覽器會加載您單擊的網頁並告訴網站您來自哪裏。例如,如果您在stackoverflow.com上單擊了外部網站的鏈接,外部網站會顯示您來自的stackoverflow.com問題的地址。該信息包含在HTTP引用標頭中。

要添加此信息,您可以使用下面的代碼,假設你正在使用的WebView來顯示網站

String url = "http://www.amazon.com/"; 
Map<String, String> extraHeaders = new HashMap<String, String>(); 
extraHeaders.put("Referer", "http://www.yourwebsite.com"); 
WebView wv; 
wv = (WebView) findViewById(R.id.webview); 
wv.loadUrl(url, extraHeaders); 

使用的意圖是不可能的異常的用戶將使用支持的默認瀏覽器這種代碼

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); 
    Bundle bundle = new Bundle(); 
    bundle.putString("Referer", "http://www.yourwebsite.com"); 
    browserIntent.putExtra(Browser.EXTRA_HEADERS, bundle); 

但是如果你只是在你的佈局WebView,能見度invisible,並且不覆蓋WebClient,即wv.setWebViewClient(new MyWebViewClient());,你與Intent相同的行爲

+0

謝謝拉杜。可能是我的問題是錯的。但是我會在列表視圖中顯示值。所以如果我點擊列表中的一行,它應該去一個網站。在每一行我都會有我自己的textview,imageview。你能協助這種情況嗎? – Prince

+0

另請參閱我更新的問題 – Prince

相關問題