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

ios 的 app 开屏广告跳转方式,业界都是怎么处理的?

  •  
  •   zror · 2022-01-08 11:48:55 +08:00 · 3365 次点击
    这是一个创建于 811 天前的主题,其中的信息可能已经有所发展或是发生改变。

    事情的起因: 我们有个 H5 的页面,要投放在我们 app 的开屏广告位置。H5 里的跳转链接都是通过 href 的形式跳转 scheme 原生协议地址。但 ios 端开屏广告打开我们的 H5 ,里面的链接都无法打开。ios 开发说开屏广告 H5 打开链接的方式需要通过 jsbridge 的形式。 但 H5 的页面投放在我们 app 其他位置都不会出现问题,只有 ios 端的开屏广告位置有这个问题。

    下面是 ios 开发和我解释的,我也不懂 ios 开发,麻烦各位帮忙看看,业界都是这么处理开屏广告的吗?

    “开屏广告落地页在广告投放时有约定的投放方式。这么处理主要是因为同一个 window 下,其他协议换起打开的落地页如果是横屏的,会导致广告页面也横屏,所以业内都是按照两个 window 处理,jsbridge 知道是在哪个 window 上弹出,目前广告都是按照这个约定的规则投放” “安卓每个页面是单独的 activity, activity 旋转不会影响别的, activity 自己就是独立的” “iOS 是一个 window,一个导航,导航压栈,屏幕旋转 window 就要转动”

    如果他说的对,业界都是这么处理的,那前端还需要把页面里所有的 a 链接全改成 jsbridge 跳转?关键我们的 H5 也要投放在 M 端的啊。

    12 条回复    2022-01-10 17:12:13 +08:00
    kekxv
        1
    kekxv  
       2022-01-08 13:09:20 +08:00 via iPhone
    你这个问题不做开屏广告就能解决
    zror
        2
    zror  
    OP
       2022-01-08 13:52:25 +08:00
    @kekxv 我的问题是 如果是开屏广告 必须就要用 jsbridge 方式跳转么?
    kekxv
        3
    kekxv  
       2022-01-08 14:33:31 +08:00 via iPhone
    其实这个我不懂,不过我感觉应该是要区分什么广告吧,
    如果是软件(下载 app )的广告 url 设置 app store 应该可以吧,
    或者你记录点击状态,广告屏过去之后再做跳转,
    又或者,你在 html5 里把跳转事件做成封装,对当前环境进行判断之后再做对应跳转
    markgor
        4
    markgor  
       2022-01-08 16:56:55 +08:00
    jsbridge 是通讯方式而不是跳转方式吧,我的理解...
    我不清楚你的广告跳转是要怎样跳转,如果是单纯的 h5 跳转,让开发写个 webview 的页面,开屏点击后跳转去 webview ,然后该干嘛干嘛。
    如果是想 h5 跳转打开其他 APP ,那就需要通过 JSBridge 来交互。
    iyeatse
        5
    iyeatse  
       2022-01-08 17:38:15 +08:00
    开发菜而已。他们完全可以在容器层拦截掉 a 标签跳转,然后根据容器是在开屏广告还是应用内部做不同处理。从发贴记录看来 你们的 iOS 开发已经不是第一次暴论了😅
    zror
        6
    zror  
    OP
       2022-01-08 19:57:57 +08:00
    @iyeatse 我们公司的 app 里有好几个 webview ,都是一个部门的,大家都自己干自己的,感觉互相都不认识也不交流。技术不怎么样,态度倒是非常 nb ,一个个都觉得自己是大爷,只要出错都不是自己的错,都让别人做兼容。
    一个简简单单的 H5 ,安卓 app 里正常,ios 新页面打开也正常,就是通过开屏广告打开不正常,然后还挺有理,说业界都这么处理,我也不懂,所以就上来问问
    zror
        7
    zror  
    OP
       2022-01-08 19:58:58 +08:00
    @markgor 开屏广告就是打开一个 H5 ,不跳转其他 app 。
    BB9z
        8
    BB9z  
       2022-01-08 21:47:03 +08:00   ❤️ 1
    楼主要求的是正常需求,正常做不存在任何技术难点。

    “其他协议换起打开的落地页如果是横屏的,会导致广告页面也横屏,所以业内都是按照两个 window 处理” —— 因为你们开发用了多个 window ,才有屏幕旋转问题,如果我做肯定是导航压栈,就不会有旋转的问题。我个人没见过正常业务要用另一个 window 覆盖去做,只有调试场景会用到。

    关键的问题是 a 链接和 jsbridge 形式,这两种都能拦截,不应有只能用 jsbridge 不能用链接的区别。这个我就猜不到你们开发用的什么方案了,非得要 jsbridge 。

    估计是你们应用已经有技术依赖了,要改变这一行为可能对系统会有不小的影响。
    ww940521
        9
    ww940521  
       2022-01-10 11:05:16 +08:00
    应该是设计的问题,开屏广告一直用的是 jsbridge ,改成 a 标签的话可能要动那一块逻辑实现兼容,懒得改代码罢了。
    ww940521
        10
    ww940521  
       2022-01-10 11:05:56 +08:00
    还有改代码的上线问题。
    zror
        11
    zror  
    OP
       2022-01-10 13:39:14 +08:00
    @ww940521 估计要是老板让改 马上就能改了
    110jiyinbo
        12
    110jiyinbo  
       2022-01-10 17:12:13 +08:00   ❤️ 1
    我觉得你们的 iOS app 设计是这样的,先用一个专门的 window 用来展示开屏广告,开屏广告展示结束后替换成业务的 window 。
    这样的话,在开屏广告 window 里的 H5 里直接打开 scheme 是无法直接跳转到业务那个 window 的页面的,所以你们开发解释需要用 jsbridge ,就是他需要在 scheme 跳转之前先把 window 切过去。
    当然,也可以通过拦截跳转地址或者在 AppDelegate 里面拦截 scheme 来处理,改代码麻烦点,而且老版本也无法兼容。
    然后我没懂解释那个横屏竖屏有啥关系,你们想把开屏广告直接做成 H5 ,那还有其他的落地页么。
    最后,非常不建议把 H5 作为开屏广告,就算是上次启动时先下载到本地,体验也不会好。我们这儿这种需求在评审的时候就直接枪毙了,还会认为这个产品非常不专业。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2772 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 12:50 · PVG 20:50 · LAX 05:50 · JFK 08:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.