事情的起因: 我们有个 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 端的啊。
1
kekxv 2022-01-08 13:09:20 +08:00 via iPhone
你这个问题不做开屏广告就能解决
|
3
kekxv 2022-01-08 14:33:31 +08:00 via iPhone
其实这个我不懂,不过我感觉应该是要区分什么广告吧,
如果是软件(下载 app )的广告 url 设置 app store 应该可以吧, 或者你记录点击状态,广告屏过去之后再做跳转, 又或者,你在 html5 里把跳转事件做成封装,对当前环境进行判断之后再做对应跳转 |
4
markgor 2022-01-08 16:56:55 +08:00
jsbridge 是通讯方式而不是跳转方式吧,我的理解...
我不清楚你的广告跳转是要怎样跳转,如果是单纯的 h5 跳转,让开发写个 webview 的页面,开屏点击后跳转去 webview ,然后该干嘛干嘛。 如果是想 h5 跳转打开其他 APP ,那就需要通过 JSBridge 来交互。 |
5
iyeatse 2022-01-08 17:38:15 +08:00
开发菜而已。他们完全可以在容器层拦截掉 a 标签跳转,然后根据容器是在开屏广告还是应用内部做不同处理。从发贴记录看来 你们的 iOS 开发已经不是第一次暴论了😅
|
6
zror OP @iyeatse 我们公司的 app 里有好几个 webview ,都是一个部门的,大家都自己干自己的,感觉互相都不认识也不交流。技术不怎么样,态度倒是非常 nb ,一个个都觉得自己是大爷,只要出错都不是自己的错,都让别人做兼容。
一个简简单单的 H5 ,安卓 app 里正常,ios 新页面打开也正常,就是通过开屏广告打开不正常,然后还挺有理,说业界都这么处理,我也不懂,所以就上来问问 |
8
BB9z 2022-01-08 21:47:03 +08:00 1
楼主要求的是正常需求,正常做不存在任何技术难点。
“其他协议换起打开的落地页如果是横屏的,会导致广告页面也横屏,所以业内都是按照两个 window 处理” —— 因为你们开发用了多个 window ,才有屏幕旋转问题,如果我做肯定是导航压栈,就不会有旋转的问题。我个人没见过正常业务要用另一个 window 覆盖去做,只有调试场景会用到。 关键的问题是 a 链接和 jsbridge 形式,这两种都能拦截,不应有只能用 jsbridge 不能用链接的区别。这个我就猜不到你们开发用的什么方案了,非得要 jsbridge 。 估计是你们应用已经有技术依赖了,要改变这一行为可能对系统会有不小的影响。 |
9
ww940521 2022-01-10 11:05:16 +08:00
应该是设计的问题,开屏广告一直用的是 jsbridge ,改成 a 标签的话可能要动那一块逻辑实现兼容,懒得改代码罢了。
|
10
ww940521 2022-01-10 11:05:56 +08:00
还有改代码的上线问题。
|
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 作为开屏广告,就算是上次启动时先下载到本地,体验也不会好。我们这儿这种需求在评审的时候就直接枪毙了,还会认为这个产品非常不专业。 |