ios13,safari浏览器,对地址栏的处理, 提二个bug。

ios13以下的系统,safari浏览器横屏后,点击顶部出现地址栏,游戏界面顶部被遮住。 (这个也算引擎的bug)
ios13以上的系统,safari浏览器横屏全屏后,无法点击顶部, 点击无效。 (这是引擎的bug,我有解决方案,在以前的帖子里)

断断续续花了两周的时间解决了这两个问题

首先想问一下, 有人有这个需求吗,就是在safari地址栏出现时,界面下移并且适配。 我看了很多帖子,问了很多问题。 但是似乎大家都没有遇到这个问题。也没有人讨论过这个问题。 所以我的攻略我就懒得说了。

引擎是2.21.rc4的版本。


safari 被当成 uc浏览器做了错误的处理,导致使用了错误的方法,这个是向引擎工作人员反馈的bug。 我没有去研究怎么进行的判断, 我只是解决我的问题,

导致我们的产品出现的bug 的原因就是uc浏览器下面的处理。

这个地方判断错误导致的问题是, safari浏览器, 地址栏出现后, 界面没有自动适配。 还是保持原样。 我看很多产品都有这个问题, 如果可以的话 希望引擎组解决。 就是safari 浏览器被当成uc进行处理了。

这个问题是在高版本中去全屏的时候画面点击位置和游戏响应位置不一样吗

老哥 可以分享一下下移适配的方法吗 我这正好有这个需求 有点头大 上面出现两个标签的时候会自动顶下去

明天左右分享详细内容, 这里只贴方法。
首先解决ios13 顶部点击不了的问题

function iponeXFit(){
if (isIOS) {
if((window.orientation == 90 || window.orientation == -90) && (isSafari || isFirefox)){
if(screen.height % 896 == 0) //如果横屏之后的宽度除以896 能除尽, 那么就需要设置width 896 +1 主要是 一款XR 和 XS Max
{
document.querySelector(‘meta[name=viewport]’).content = ‘width=897,user-scalable=no,initial-scale=1, minimum-scale=1,maximum-scale=1,viewport-fit=cover’
}
else if(screen.height % 812 == 0)//如果横屏之后的宽度除以812 能除尽, 那么就需要设置width 812 +1 主要是 x 和 XS 以及 一款 XR?
{
document.querySelector(‘meta[name=viewport]’).content = ‘width=813,user-scalable=no,initial-scale=1, minimum-scale=1,maximum-scale=1,viewport-fit=cover’
}
else if(screen.height % 736 == 0)// 7 plus 8 plus
{
document.querySelector(‘meta[name=viewport]’).content = ‘width=737,user-scalable=no,initial-scale=1, minimum-scale=1,maximum-scale=1,viewport-fit=cover’
}
else if(screen.height % 667 == 0)// 7 和 8 6s
{
document.querySelector(‘meta[name=viewport]’).content = ‘width=668,user-scalable=no,initial-scale=1, minimum-scale=1,maximum-scale=1,viewport-fit=cover’
}
else //低于6s
{
document.querySelector(‘meta[name=viewport]’).content = ‘width=device-width,user-scalable=no,initial-scale=1, minimum-scale=1,maximum-scale=1,viewport-fit=cover’
}
}
else
{
document.querySelector(‘meta[name=viewport]’).content = ‘width=device-width,user-scalable=no,initial-scale=1, minimum-scale=1,maximum-scale=1,viewport-fit=cover’
}
}
}

然后是全屏的问题。 cocosCreator\2.2.1\CocosCreator\resources\engine\bin.cache\web-mobile\cocos2d-js 这里引擎的代码改一下

注释掉这里, 我是 2.2.1 rc4的版本。

然后你在 web端适配的代码里面 当点击出地址栏的时候加下面两句中的其中一句代码就压缩适配全屏了, 并且没有偏移。

你的问题就是注释掉 那个代码 路径我给你了, 照着我的注释就行。

cocosCreator\2.2.1\CocosCreator\resources\engine\bin.cache\web-mobile\cocos2d-js 这里引擎的代码改一下
注释掉这里, 我是 2.2.1 rc4的版本。

直接就生效了 好像。

老哥你的处理方法就是上面那个代码修改后就可以了是嘛

有了最新的方法, 在 cc view里面判断是不是safari 然后,

这个地方改一下, 就可以满足 safari 苹果手机地址栏出现后屏幕不自动适配的问题, 其它的改动都取消,只要这里就行了。

h5游戏在safari多标签时横屏显示不全 这个帖子同样解决了问题

我也遇到同样的问题, 学习了

请问大佬, 地址栏无法点击的问题是写道哪里, 是写道CCView 的initFrame里面吗

写在自己的适配文件里面, 全局调用, 你打包 web端之后不是在build 里面有文件吗, 在.html 文件里引用你自己写的 js文件

楼主看了你之前的现在的帖子。问一下想在cocos1.9.3。IOS下怎么主动让用户无法点击顶部, 让点击无效。

MARK

本身自带的bug啊, ios 13的safari就点不了 。 ios13以下都能点 safari

大佬大佬,那个无法点击的方法是加在哪里啊,求救

无法点击是自带的bug 啊, 官方已经修复了:joy::joy::joy: 你可以用逆向思维 试一下, 我是解决了无法点击的bug。 你试试让它变得无法点击

全屏画面点击位置和游戏相应位置不一样这个有办法解决不

你是改了适配之后导致的? 你这个明显就是点击层和渲染层不一致了。