internetWei/llDark

LLDarkWindow的windowLevel引起的问题

Opened this issue · 6 comments

发现windowLevel设置的层级貌似会导致支付宝SDK网页版拉不起来,修改下level就能正常拉起了

您好,由于我没有对接过支付宝的SDK,所以冒味问一下调用弹出支付宝网页的代码需要设置window吗?您是通过[UIApplication sharedApplication].windows.firstObject来获取keyWindow的吗?

您好,由于我没有对接过支付宝的SDK,所以冒味问一下调用弹出支付宝网页的代码需要设置window吗?您是通过[UIApplication sharedApplication].windows.firstObject来获取keyWindow的吗?

您好大佬,弹出支付宝网页的代码是支付宝SDK内置调用的,不过我看官网介绍就是[[[UIApplication shareApplication] windows] index:0]这样获取keyWindow的,跟您说的一样,请问有什么好的解决方案吗?我改windowLevel会有什么影响吗?,另外我还发现一个我改完windowLevel以后statusBar的颜色不对了不知道跟我修改windowLevel 有没有直接的关系

windowLevel的作用是为了能让LLDarkWindow有效且接收系统主题的改变通知。我之前尝试过修改windowLevel,但是修改完之后会导致LLDarkWindow无法收到系统主题的改变。具体表现为:(假设你当前的系统主题模式是深色模式)当你将APP的主题切换成浅色主题模式后,然后你再将系统的主题模式修改为浅色模式,然后你再将APP的主题切换成“跟随系统”,APP无法显示正确的主题模式。因为你第二步操作“将系统的主题模式修改为浅色模式”时系统会调用主题修改的代理方法。

您如果修改了windowLevel,建议按照以上测试流程测试一下APP从“非跟随系统”切换到“跟随系统”后是否正常(注:系统的主题模式要发生改变)。如果没有问题的话则没事。

正常情况下确实可以这样获取keyWindow[[[UIApplication shareApplication] windows] index:0],您提到的支付宝SDK弹出网页,如果您可以传递keyWindow的话,您可以尝试通过UIApplication.sharedApplication.delegate获取AppDelegate实例对象,然后通过这个实例对象获取它的window对象。如果还不能解决问题的话请您联系我,我会加急处理一下您的问题。

windowLevel的作用是为了能让LLDarkWindow有效且接收系统主题的改变通知。我之前尝试过修改windowLevel,但是修改完之后会导致LLDarkWindow无法收到系统主题的改变。具体表现为:(假设你当前的系统主题模式是深色模式)当你将APP的主题切换成浅色主题模式后,然后你再将系统的主题模式修改为浅色模式,然后你再将APP的主题切换成“跟随系统”,APP无法显示正确的主题模式。因为你第二步操作“将系统的主题模式修改为浅色模式”时系统会调用主题修改的代理方法。

您如果修改了windowLevel,建议按照以上测试流程测试一下APP从“非跟随系统”切换到“跟随系统”后是否正常(注:系统的主题模式要发生改变)。如果没有问题的话则没事。

正常情况下确实可以这样获取keyWindow[[[UIApplication shareApplication] windows] index:0],您提到的支付宝SDK弹出网页,如果您可以传递keyWindow的话,您可以尝试通过UIApplication.sharedApplication.delegate获取AppDelegate实例对象,然后通过这个实例对象获取它的window对象。如果还不能解决问题的话请您联系我,我会加急处理一下您的问题。

keyWindow是传递不了的,我现在的做法是在调支付的时候修改了下windowLevel,支付完成后再修改回来windowLevel,不知道有没有更好的解决办法

如果您这样做不能解决您当前的问题请您告知我,我将加急处理。
如果这样可以修改您的问题的话您可以先暂时这样改,我会把您遇到的这个问题在下个版本中进行修复。

如果您这样做不能解决您当前的问题请您告知我,我将加急处理。
如果这样可以修改您的问题的话您可以先暂时这样改,我会把您遇到的这个问题在下个版本中进行修复。

目前可以暂时解决,但是还是希望大佬可以尽快更新版本,3Q