V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ecloud
V2EX  ›  Android

甲方的奇葩要求,能实现否?强制使用谷歌浏览器打开 url

  •  
  •   ecloud · 10 天前 · 5044 次点击

    通过聊天软件或者网站邮件什么的给你发送一个链接,然后如果你用随便什么浏览器打开这个页面,里面检测浏览器是否为 chrome ,不是的话触发强制用 chrome 打开另外一个链接。

    据我所知这个在安卓系统里无法实现吧

    35 条回复    2024-04-27 13:51:06 +08:00
    sentinelK
        1
    sentinelK  
       10 天前
    不是 chrome 可以拒绝显示,但是“强制”,而且还打开“另外一个链接”是什么鬼?
    我要是没有 chrome 呢?
    jim9606
        2
    jim9606  
       10 天前   ❤️ 1
    跳转页通过 UA 判断是不是 chrome ,不是的话显示全屏 overlay 提示让用 chrome 打开?
    codehz
        3
    codehz  
       10 天前
    看看能给多少钱,给超过 20000 刀的话也许能收几个 0day
    flyqie
        4
    flyqie  
       10 天前 via Android
    @jim9606 #2

    微信浏览器跳转也是这么实现的,只能这么干了。
    fredweili
        5
    fredweili  
       10 天前
    intent 指定 package
    gentrydeng
        6
    gentrydeng  
       10 天前 via Android
    在 Android 上用 Google Chrome 打开不是问题: https://developer.chrome.google.cn/docs/android/intents

    问题在于,如何判断当前网页浏览器是不是 Google Chrome 。
    vvhy
        7
    vvhy  
       10 天前 via Android   ❤️ 1
    用 url scheme ?
    gentrydeng
        8
    gentrydeng  
       10 天前 via Android
    #6 以及如何用户 Android 设备上没有 Google Chrome 的话,你如何让他们进行下载呢?

    在境外这不是问题,我记得 Google Play 商店有相关 API ,但是境内的话,Android 端的 Google Chrome 是没有下载渠道的,尤其当“APP 备案”推出后,提供与未备案 APP 有关的服务可是有法律风险的。
    gentrydeng
        9
    gentrydeng  
       10 天前 via Android
    #8 *如何用户 Android 设备上 → 如果用户 Android 设备上
    ecloud
        10
    ecloud  
    OP
       10 天前
    @jim9606 这是我们提供的解决方案,但是甲方希望能够强制用 chrome 打开第二个链接
    sighforever
        11
    sighforever  
       10 天前
    @gentrydeng 我感觉不用判断,就是强制使用 intent 用谷歌浏览器打开第二个链接就满足他这个需求了。
    renmu
        12
    renmu  
       10 天前 via Android
    你怎么判断当前浏览器是不是 chrome ,ua 肯定是不准确的
    ecloud
        13
    ecloud  
    OP
       10 天前
    @fredweili scheme 是 http?
    ecloud
        14
    ecloud  
    OP
       10 天前
    @sentinelK 没有就不给用,因为是 PWA ,必须要 chrome 才能使用
    ecloud
        15
    ecloud  
    OP
       10 天前
    @gentrydeng 我看了下其他国内的文档,好像说并不是所有浏览器都支持 intents 标签的链接打开另一个应用
    justfindu
        16
    justfindu  
       10 天前   ❤️ 1
    googlechrome://navigate?url=example.com 这种?
    iblessyou
        17
    iblessyou  
       10 天前   ❤️ 5
    研发别总拿自己和需求死磕,预研无法实现,果断抛给其他部门让去和客户沟通去。
    自己这么费劲扒拉,大概率最后是没做出浪费大量时间,或者用了个简单客户能接受而你们根本没那么想过的方式解决了。
    WashFreshFresh
        18
    WashFreshFresh  
       10 天前
    可以吧,参考饿了么的红包券助力,都是微信打开,然后复制链接用浏览器打开,点击助力,要么提示下载饿了么,要么就自动打开饿了么了
    yyzh
        19
    yyzh  
       10 天前
    @WashFreshFresh
    对.现在摇一摇能自动调用拼多多/京东/淘宝打开某个活动页面.挺智能的.
    hefish
        20
    hefish  
       10 天前
    如果能实现摇一摇就自动下载支付宝,然后自动转账,然后自动输入付款密码,然后自动删除支付宝,自动恢复出厂设置。。。就好了。。。
    since2021
        21
    since2021  
       10 天前
    @justfindu 这个不行,firefox 也认
    NoOneNoBody
        22
    NoOneNoBody  
       10 天前
    重新沟通一下吧,感觉可能是拉业务的转述出现了偏差
    这个是小范围需求,用户估计不是泛用户,可能用户已经从其他途径确认安装了 chrome ;另一种情况是 chromium 系浏览器,甲方不一定懂,只说了 chrome
    shuxhan
        23
    shuxhan  
       10 天前
    直接内置一个 chrome ,类似 electron 那样
    hauibojek
        24
    hauibojek  
       10 天前
    iOS 可以用 scheme 的方式 ,安卓上应该也差不多吧,
    直接判断能否用谷歌浏览器打开,能打开直接跳,不能就弹框提示
    justfindu
        26
    justfindu  
       10 天前
    @since2021 #21 如果安装两个程序, 岂不是 URLSchema 冲突了
    garipan
        27
    garipan  
       10 天前
    To avoid the XY problem in software development, it is important to be clear about the actual problem. The developer should be able to articulate the problem they are trying to solve, and the person trying to help should be able to ask clarifying questions to make sure they understand the problem.

    The XY problem obscures the real issues and may even introduce secondary problems that lead to miscommunication, resource mismanagement, and sub-par solutions. The solution for the support personnel is to ask probing questions as to why the information is needed in order to identify the root problem Y and redirect the end user away from an unproductive path of inquiry.
    haichao0808
        28
    haichao0808  
       10 天前
    该拒绝就拒绝,不然客户下次说点击之后就强制用户支付宝给我转钱。
    mengjisang
        29
    mengjisang  
       10 天前
    这种业务需求太不合理了,最多设置默认浏览器为 chrome ,url 的打开方式应该设置为可选的。
    另外 op 的头像真的好酷😎
    libook
        30
    libook  
       10 天前
    根据 UA 判断是否是 Chrome ,不是的话可以使用 URL scheme 打开 Chrome 。
    yiranshaxiao
        31
    yiranshaxiao  
       10 天前
    做不到。
    beriru
        32
    beriru  
       10 天前
    @gentrydeng
    能这样做的前提是当前浏览器(WebView)在 shouldOverrideUrlLoading 中解析了 intent scheme 并且 startActivity(Intent.parseUri(xxx)), 大部分浏览器不会这么做,因为存在安全问题
    lisxour
        33
    lisxour  
       9 天前
    @justfindu #26 并不会冲突,当多个程序注册了自定义协议后,会以默认的那个打开(就是设置里的那个默认打开程序),没有设置默认,会弹出来让你选的。
    lisxour
        34
    lisxour  
       9 天前
    省流版:
    1. 如果是 hybrid 开发,用原生代码是有办法的
    2. 如果是纯网页,不管是判断是不是 chrome ,还是强制再用 chrome 打开,都是无法实行的(或者说都是不靠谱方案)
    shinession
        35
    shinession  
       9 天前
    已经有 app 是这种设置了, 这要求不奇葩, 我记得谷歌的授权程序就是这样, 我还专门装了 chrome, 手机里浏览器都 3 个
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   951 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:30 · PVG 05:30 · LAX 14:30 · JFK 17:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.