Instagram 链接在应用程序内浏览器打开,而不是外部/本机浏览器

hel*_*llo 4 javascript android ios instagram instagram-api

如果我的个人资料中有一个链接,该链接会从 iOS 或 Android 打开应用内浏览器。是否可以打开外部浏览器?可能在我自己的网站中,如果我可以检测用户是否使用移动设备,打开本机浏览器?也许这是一个使用javascript的解决方案?

问题是因为用户登录到我的网站,然后单击 Instagram 中的链接,应用内浏览器不会让用户保持登录状态。

小智 7

那\xe2\x80\x99s可能而且简单!
\n您必须欺骗 Instagram\xe2\x80\x99s 应用内浏览器。Instagram\xe2\x80\x99s应用内浏览器的弱点是文件下载。当您要求它下载文件时,它会调用外部浏览器,这就是我们的金钥匙。

\n\n

您首先需要检查客户使用哪种浏览器访问您的网站。
\n换句话说:

\n\n
<script>\n   if(navigator.userAgent.includes("Instagram")){\n       window.location.href = "https://mywebsite.com/DummyBytes";\n   }\n</script>\n
Run Code Online (Sandbox Code Playgroud)\n\n

然后,实现 DummyBytes API。此 API 根据查看器\xe2\x80\x99s 浏览器返回不同的响应。如果查看器\xe2\x80\x99s浏览器是Instagram\xe2\x80\x99s应用内浏览器,它将返回一些虚拟字节作为文件,否则它将返回重定向查看器\xe2\x80\x99s浏览器的响应到您的主网站 (mywebsite.com)

\n\n
<?php\n    $userAgent = $_SERVER[\'HTTP_USER_AGENT\'];\n    if (strpos($userAgent, \'Instagram\')) {\n        header(\'Content-type: application/pdf\');\n        header(\'Content-Disposition: inline; filename= blablabla\');\n        header(\'Content-Transfer-Encoding: binary\');\n        header(\'Accept-Ranges: bytes\');\n        @readfile($file);\n    }\n    else{\n        header(\'Location: https://halterapp.com\');\n    }\n?>\n
Run Code Online (Sandbox Code Playgroud)\n\n

如果您需要更多指导,请参阅下面的链接:
\n自动在查看器\xe2\x80\x99s 外部浏览器中打开您的网站,而不是 Instagram\xe2\x80\x99s 应用内浏览器

\n