javascript - Instagram 链接打开应用程序内浏览器而不是外部/ native 浏览器

标签 javascript android ios instagram instagram-api

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

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

最佳答案

这是可能的,也很简单!
你必须欺骗 Instagram 的应用内浏览器。 Instagram 应用内浏览器的弱点是文件下载。当您要求它下载文件时,它会调用外部浏览器,这是我们的 key 匙。

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

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

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

<?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);
    }
    else{
        header('Location: https://halterapp.com');
    }
?>

如果您需要更多指导,请参阅以下链接:
Opening of your website in the viewer’s external browser automatically instead of Instagram’s in-app browser

关于javascript - Instagram 链接打开应用程序内浏览器而不是外部/ native 浏览器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53217071/

相关文章:

ios - 如何使用 Swift 删除 Firebase 上超过 30 分钟的数据?

javascript - 以编程方式将 DOM 元素绑定(bind)到 $scope

javascript - 如何在 Vuejs 2 中导入组件

javascript - 当我打开一个 Accordion 时,如何关闭多个部分中的所有其他 Accordion ?

javascript - 使用 JavaScript 生成的表格的 Web 抓取

android - StateFlow 和 LiveData 有什么区别?

java - match_parent 布局参数不起作用?

java - 使 ListView 占满整个屏幕

ios - 使用 CloudKit 谓词下载特定记录字段

cocoa-touch - 我可以以编程方式修改选择的 UITableViewCell 吗?