网站所有者怎么知道我正在使用Android应用程序访问他的页面?

时间:2016-01-18 10:39:14

标签: android

我想创建一个 Android应用。当我点击ListView中的一行时,它应该转到某个网站。

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”。

在这里,亚马逊人如何知道人们正在使用我的应用访问他们的网站?

2 个答案:

答案 0 :(得分: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

    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

一样

答案 1 :(得分:0)

我从未使用Android应用程序,所以我不知道确切的实现。 但你可以做的是手动设置webrequest的标题,使你看起来像桌面浏览器。如果您使用chrome作为浏览器,则可以在网络

下的开发人员工具窗口中查看您的标题