gpt4 book ai didi

browser - 如何测试用户是否使用应用内浏览器而不是 Safari?

转载 作者:行者123 更新时间:2023-12-04 13:49:59 26 4
gpt4 key购买 nike

我已经设置了一个系统,客户可以在其中扫描链接到注册网页的二维码。输入一些信息后,客户会收到一个 Passbook 优惠券。

有一个问题 - Passbook .pkpass 文件需要发送到启用了正确 MIME 类型的浏览器:

应用程序/vnd.apple.pkpass pkpass;

iOS 版 Safari 已配置为接受此 MIME 类型。但是,许多免费的二维码扫描应用程序使用的应用程序内浏览器不支持此 MIME 类型。

如何过滤 http_user_agent 字符串以检查客户是从 Safari 浏览器还是从应用程序内浏览器浏览?

谢谢如果你能帮忙..

附言我知道 Passbook for iOS7 包含一个兼容的二维码扫描器 - 我需要管理使用旧版本 iOS 的用户(以及我想链接到注册页面而不是直接链接到 Passbook 文件的情况)

最佳答案

最简单的选择是将适用于 Safari 6 及更高版本、Chrome 23 及更高版本的 iOS iPhone 和 iPad 用户代理列入白名单。缺点是你会错过那些在 UIWebView 实现中实现了 Passbook 支持的应用程序。

全面禁止 UIWebView UA 字符串是无效的,因为:

  • 应用作者可以自由更改 UIWebView 用户代理字符串
  • 您将阻止访问已实现 Passbook 支持的应用程序

  • Facebook 应用程序是一个很好的例子,它既更改了 UA 字符串又实现了 Passbook 支持。 Twitter 应用程序已更改 UA 字符串,但尚未实现 Passbook 支持。

    因此,选项 2 可能是创建一个已知未实现支持的应用程序的黑名单。扫描此 QR 将显示浏览器的用户代理字符串,这可能会有所帮助。关键是使用合适的正则表达式来解释操作系统和应用程序版本的变化,但要避免误报。

    enter image description here

    第三种选择是使用 Javascript 显示一条显着消息,指示用户在应用浏览器停止响应时在 Safari 中打开链接,然后重定向到 .pkpass 包。

    关于browser - 如何测试用户是否使用应用内浏览器而不是 Safari?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18203170/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com