首页 > 其他分享 >ionic在iOS16上遇到的一些问题,图片、图标不显示,样式不正常等

ionic在iOS16上遇到的一些问题,图片、图标不显示,样式不正常等

时间:2023-12-26 16:24:56浏览次数:29  
标签:显示 iOS16 url req window ionic fetch 图标

近日,一个很久之前ionic5开发的APP的iOS版因为签名描述文件(profile、.mobileProvisioning)过期而不能使用了,所以需要重新创建一个描述文件,然后重新打包APP。但过程中却遇到了一系列的问题,特写此文记录下来。

问题1,iOS打包遇到问题:在xcode的Signing & Capabilities 面板中选择(导入)了新创建的mobileProvisioning文件后,下方提示错误

image

image

(注:这里放了两张图片,但问题下面都列了)
最后发现导致问题的原因是好几处:
1.xcode上登录的开发者账号过期了
image
解决方式: 重新登录。
2.草果系统OSX上的开发证书(certificate)过期了
image
解决方式: 这个上苹果开发者后台,重新创建一个certificate,下载后双击导入到钥匙串就可以了。
注意,前面创建的描述文件(profile)也要重新创建,因为之前创建的那个绑定的是过期的certificate。

3. Xcode 的 Build Setting 面板中关于签名的字段设置错误:
解决方式: 下图这个字段一定要设为刚才创建好的certificate。
image

到这里iOS打包成功了。

问题2,iOS16打开ionic APP后白屏

解决方式: 修改src/index.html中<base href="/" />改为<base href="." />
注,这个据网上查到的信息说是iOS16才出现的,反正我的APP,之前是好的。

问题3 ,应用中图片显示不出来,在浏览器上正常,在iphone上不显示

解决方式:
1.HTML中的图片,将原来的src="/assets/imgs/..."改为src="assets/imgs/..."
2.scss中的background,将url(/assets/imgs)改为url(../../../assets/imgs)
注:这两个问题是由于前面改<base href="." />后导致的。关于base标签可以自行上网查。

问题4,iOS16 上背景图片不显示、边框(border)不显示(看不见、隐藏)或显示不全

解决方式: 元素带有border-radius属性后就后出现背景不显示,增加以下两上属性就可以:

    transform: matrix3d(0,0,0);
    will-change: transform;

问题6,input[type='checkbox']元素当勾选状态时不显示(看不见、隐藏)

解决方式: 同上。
注:实测发现只要父元素按上面的方式加了那两个属性,其子元素如果有input[type='checkbox']元素则已经可以正常显示了。

问题7,ion-icon图标不显示

一开始在浏览器里还能显示,后来不知怎么回事就不显示了。在浏览器中查看代码:
image
发现.icon-inner下是空的,正常应该是有SVG元素的,如下:
image
后来发现在控制台有报错:
image
看到window.fetch(vconsole.min.js中),想到之前在网上查“ion-icon不显示”的问题,有个帖子说的就是修改window.fetch函数。然后我断点调试了一下,发现好像是vconsole中也自定义了一个window.fetch函数,应该就是它引起的,果然把vconsole去掉ion-icon图标就出来了。
但是,打包后在手机上运行,图标还是不显示。
于是我上网找到之前看到的修改window.fetch函数的帖子,按上面说的又改了一下,最后手机上的ion-icon图标也出来了。代码如下(我把它放在了src/index.html中了):

        <script type="text/javascript">
            var originalFetch = window.fetch;
            window.fetch = function () {
                var args = [];
                for (var i = 0; i < arguments.length; i++) {
                    args[i] = arguments[i];
                }
                var url = args[0];
                if (typeof url === "string" && url.match(/\.svg/)) {
                    return new Promise(function (resolve, reject) {
                        var req = new XMLHttpRequest();
                        req.open("GET", url, true);
                        req.addEventListener("load", function () {
                            resolve({
                                ok: true,
                                status: 200,
                                text: function () {
                                    return Promise.resolve(req.responseText);
                                },
                            });
                        });
                        req.addEventListener("error", reject);
                        req.send();
                    });
                } else {
                    return originalFetch.apply(void 0, args);
                }
            };
        </script>

总结,上面遇到这一堆问题,之前都是不存在的,只是因为iOS,mac OSX、xcode升级后出现的。而我的项目是比较老的项目了。我真是很想吐槽现在很多第三方库/包的升级完全不考虑兼容性,真的是给开发者带来了好多令人头疼的问题。浪费了大量时间。我个人能做的就是把自己踩过的坑,尽量告诉别人,让今后其它人再遇到同样的问题时有资料可查。

标签:显示,iOS16,url,req,window,ionic,fetch,图标
From: https://www.cnblogs.com/johnjackson/p/17928382.html

相关文章

  • 苹果微信换图标方法!教你微信快速改任意图标教程(附图标)
    微信作为如今的社交大哥,使用人数早已突破了十亿人次,可见其用户体量之多堪称第一!用户量越多大家的需求也就越多,就像苹果微信想要实现安卓微信的各种功能,因为iOS系统的限制很多都是实现不了的。就比如更换微信图标这件事,安卓只需要更换一个喜欢的系统主题足以,但对于iPhone来说基本无......
  • 将Python转换为exe文件并更换图标的方法
    使用python语言可以很方便的编写一些脚本来帮助我们完成测试等工作,但是python的运行需要依赖于python库,如果没有python库就无法正常运行脚本完成工作。那么有没有什么办法,可以在不依赖库的前提下执行脚本?我们可以将python转换成exe可执行文件,这样生成的exe可执行文件就不需要以来p......
  • c# 更改快捷方式文件图标
    c#更改快捷方式文件图标c#更改快捷方式文件图标c#更改快捷方式文件图标c#更改快捷方式文件图标c#更改快捷方式文件图标c#更改快捷方式文件图标c#更改快捷方式文件图标c#更改快捷方式文件图标c#更改快捷方式文件图标///<summary>///更改快捷方式文件图标///</summa......
  • 苹果微信换图标方法!教你微信快速改任意图标教程(附图标)
    微信作为如今的社交大哥,使用人数早已突破了十亿人次,可见其用户体量之多堪称第一!用户量越多大家的需求也就越多,就像苹果微信想要实现安卓微信的各种功能,因为iOS系统的限制很多都是实现不了的。就比如更换微信图标这件事,安卓只需要更换一个喜欢的系统主题足以,但对于iPhone来说......
  • Civil 3d 修改纵断面图标注栏中纵断面1及纵断面2
    语言不描述不清,看截图: 话不多数,直接上代码: publicvoidC_Test20231217(){Documentdoc=Application.DocumentManager.MdiActiveDocument;Editored;ed=doc.Editor;PromptEntityOptionspeo=newPromptEntityOptions("\n拾取纵断面图......
  • ExeIconToFolder 提取exe程序图标,并设置exe所在文件夹图标
    ExeIconToFolder提取exe程序图标,并设置exe所在文件夹图标2023年12月17日提取exe程序图标,并设置exe所在文件夹图标所需第三方程序IconsExtract-EXE图标提取(nirsoft.net)RestartExplorer---重新启动资源管理器(sordum.org)代码@echooffsetlocalenabledelayed......
  • 很不错的几个图标网站
      阿里巴巴矢量图标库IconFont大家应该一点也不陌生了,提供矢量图标下载、在线存储、格式转换等,内含矢量图标近百万个,是设计师和前端开发的便捷工具。今天给大家分享几个比较独特有趣的图标网站,个人觉得都很有特点,比那些单纯的线条样式要好玩儿一些。【......
  • react-native 在ios中使用react-native-vector-icons图标
    github地址:https://github.com/oblador/react-native-vector-icons1.引入npminstall--savereact-native-vector-iconsios项目引入进入node_modules/react-native-vector-icons文件夹,将Fonts文件夹拖拽到Xcode的项目根目录下,然后在Info.plist文件中添加如下内容:<key>U......
  • 解决Ubuntu系统在Vmware中重启后丢失网络图标和服务的问题
    问题如上。解决方法:先关掉NetworkManager:sudoserviceNetworkManagerstop用gedit打开NetworkManager.statesudogedit/var/lib/NetworkManager/NetworkManager.state改成如下:重启NetworkManager:sudoserviceNetworkManagerrestart完成注意:不同版本的U......
  • MUI增加自定义icon图标
    mui框架遵循极简原则,在icon图标集上也是如此,mui仅集成了原生系统中最常用的图标;使用icon图标集的优点:多个图标字体合成一个字体文件,避免每张图片都需要联网请求;字体可任意缩放,而图片放大会失真、缩小则浪费像素;可通过css任意改变颜色、设置阴影及透明效果;一、操作方法:(1)找到任意矢量......