当有人在 Instagram 或 TikTok 等应用程序上单击指向我网站的链接时,该链接会在应用程序浏览器内打开。当他们单击指向另一个站点的链接时,它也会在应用内浏览器中打开,即使该链接带有
target="_blank"
.
有没有办法强制在真实浏览器而不是应用内浏览器中打开链接?
没有保证的方法可以强制在真实浏览器而不是应用内浏览器中打开链接。此行为取决于应用程序的设置,并且可能因不同的应用程序和操作系统而异。
但是,您可以尝试从链接中删除
target="_blank"
属性。在某些情况下,这可能会导致链接在真实浏览器中打开。
是的,您可以使用 Android 中的“意图”功能强制在用户的默认浏览器而不是应用内浏览器中打开链接。以下是您的操作方法:
首先,您需要检查用户是否在他们的设备上安装了浏览器。您可以通过使用 ACTION_VIEW 操作和 URL 创建一个意图,然后使用 resolveActivity() 方法检查是否有可以处理该意图的活动来做到这一点:
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.example.com"));
if (browserIntent.resolveActivity(getPackageManager()) != null) {
// there's a browser installed, so we can open the link in the browser
}
如果安装了浏览器,您可以将 FLAG_ACTIVITY_NEW_TASK 和 FLAG_ACTIVITY_CLEAR_TASK 标志添加到意图以确保链接在应用程序外部的新任务中打开:
browserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
browserIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
最后,带着意图开始活动:
startActivity(browserIntent);
把它们放在一起,你的代码应该看起来像这样:
String url = "http://www.example.com";
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
if (browserIntent.resolveActivity(getPackageManager()) != null) {
browserIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
browserIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(browserIntent);
}
这应该强制链接在用户的默认浏览器而不是应用内浏览器中打开。