我想创建一个 Android应用。当我点击ListView
中的一行时,它应该转到某个网站。
在ListView
我会有我的小工具,例如TextView
,ImageView
等...
例如:“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 :(得分: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作为浏览器,则可以在网络
下的开发人员工具窗口中查看您的标题