如何在外部浏览器而不是应用程序内(instagram)中打开链接?

问题描述 投票:0回答:8

我一直在尝试弄清楚如何在外部浏览器(Safari、Chrome)而不是内置 Instagram 浏览器中打开您在 Instagram 应用程序中打开的 URL。

我希望 Instagram 网站部分中的链接要求离开 Instagram 应用程序并打开外部浏览器访问网站。

我尝试了很多东西,比如将 window.open 与 _blank、_system 等一起使用。也在

instagram
8个回答
11
投票

您可以检测 Instagram 应用内浏览器

navigator.userAgent.includes("Instagram")

然后像这样放链接

<a href={location.href} target='_blank' download>Open in browser</a>

“下载”关键字的所有魔力。当用户单击该链接时,它将被重定向到本机浏览器。 它在安卓上完美运行。我还没有在iOS上测试过


10
投票

这是不可能的,因为 Instagram 开发人员故意选择使用自己的浏览器控件。


5
投票

我发现一篇有趣的文章谈到了这个问题, 尝试使用这段代码来使 Instagram 的应用内浏览器重定向到您的网站

<script>
  if(navigator.userAgent.includes("Instagram")){
      window.location.href = "https://mywebsite.com/DummyBytes";
  }
</script>

欲了解更多信息,请查看文章: https://medium.com/@sasan.salem/opening-of-your-website-in-the-viewers-external-browser-automatically-instead-of-instagram-s-8aca5ee7e22f


3
投票

您可以将此脚本添加到 head 以重定向到 chrome:

<script>
        var userAgent = navigator.userAgent || navigator.vendor || window.opera;
        var str = navigator.userAgent;
        var instagram = str.indexOf("Instagram");
        var facebook = str.indexOf("FB");

        if (/android/i.test(userAgent) && (instagram != -1 || facebook != -1) ) {
            document.write("<a target=\"_blank\" href=\"https://yourdomain.com\" download id=\"open-browser-url\">Please wait. Proceed to Chrome</a>");
            window.stop();
            let input = document.getElementById('open-browser-url');
            if (input) {
                input.click();
            }
        }
    </script>

2
投票

它可以写得更优雅,但截至 21.04.2023 的解决方案是:

var ua = navigator.userAgent || navigator.vendor;
  var isInstagram = (ua.indexOf('Instagram') > -1) ? true : false;
  var str = navigator.userAgent;
  var i = str.indexOf("Instagram");
  if (isInstagram) {
    if (/iPad|iPhone|iPod/.test(ua)) {
      window.location.href = 'googlechrome://example.com';
      return;
    }
    window.location.href = 'intent:https://example.com#Intent;end';
    return;
  }

唯一的缺点是,在 IOS 上,默认浏览器 Safari 没有可以使用的 URL 方案,因此您必须求助于 Chrome。如果用户没有安装 Chrome,则会失败。


1
投票

自动在查看者的外部浏览器中打开您的网站,而不是 Instagram 的应用内浏览器(在 Android 设备上)。

您可以通过充当要下载的文件来解决,然后应用内浏览器会将您重定向到手机浏览器。

无法在 iPhone 上使用。 :(

PHP



<?php
    $userAgent = $_SERVER['HTTP_USER_AGENT'];
    if (strpos($userAgent, 'Instagram')) {
        header('Content-type: application/pdf');
        header('Content-Disposition: inline; filename= blablabla');
        header('Content-Transfer-Encoding: binary');
        header('Accept-Ranges: bytes');
        @readfile($file);
        die();
    }
?>

ASP.NET Web API:

namespace DotNet.Controller
{
    public class DummyBytesController : ApiController
    {
        [HttpGet]
        public HttpResponseMessage Get()
        {
            HttpResponseMessage Response;

            string UserAgent = HttpContext.Current.Request.UserAgent;
            if(UserAgent.Contains("Instagram"))
            {
                Response = new HttpResponseMessage(HttpStatusCode.OK);
                Response.Content = new ByteArrayContent(new byte[50]);
                Response.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
                return Response;
            }
            else
            {
                Response = Request.CreateResponse(HttpStatusCode.Redirect);
                Response.Headers.Location = new Uri("https://mywebsite.com");
                return Response;
            }
        }
    }
}

0
投票

您的个人资料中的菜单 -> 设置和隐私 -> 网站权限 -> 消息链接 -> 在外部浏览器中打开 -> 是

德语语言设置: deinem Profil 中的菜单 -> Einstellungen und Privatsphäre -> Website-Berechtigungen -> Nachrichten 中的链接 -> 在外部浏览器 öffnen 中 -> JA

不客气:)


-19
投票

其实有这种可能。 您首先使用应用内浏览器访问该链接,然后单击页面右上角的三点按钮并选择“在 Chrome 中打开”。

© www.soinside.com 2019 - 2024. All rights reserved.