四叶草秘密
四叶草秘密
  • 发布:2025-06-27 08:58
  • 更新:2025-06-27 10:59
  • 阅读:59

【通知权限】app--ios 18 如何前往系统设置页面--通知权限

分类:uni-app

在ios 18中不会跳转到系统设置--通知权限,这么写哪块有问题

var app = plus.ios.invoke('UIApplication', 'sharedApplication');
var url;

                // 获取安全 URL(iOS 8+)    
                if (plus.ios.invoke('UIApplication', 'respondsToSelector:', 'openSettingsURLString')) {   
                    var urlString = plus.ios.invoke('UIApplication', 'openSettingsURLString');    
                    url = plus.ios.invoke('NSURL', 'URLWithString:', urlString);    
                } else {    
                    url = plus.ios.invoke('NSURL', 'URLWithString:', 'app-settings:');    
                }    
                // 判断新 API 可用性(iOS 10+)    
                var supportsNewAPI = plus.ios.invoke(app, 'respondsToSelector:', 'openURL:options:completionHandler:');    
                if (supportsNewAPI) {    

                    var options = plus.ios.newObject('NSDictionary');    
                    var completion = plus.ios.newBlock(function(success) {    

                      console.log("跳转结果:11" + success);    
                      if (!success) {    
                          uni.showToast({  
                            title: "无法打开设置,请手动前往",  
                            icon: "none"  
                          });  

                      }    
                    }, 'v@:B');    
                        plus.ios.invoke(app, 'openURL:options:completionHandler:', url, options, completion);  
                        plus.ios.deleteObject(completion);    

                } else {    
                    if (plus.ios.invoke(app, 'canOpenURL:', url)) {    
                            plus.ios.invoke(app, 'openURL:', url);  

                    } else {    
                        console.log("跳转结果:33" );  

                    }    
                  }    
                plus.ios.deleteObject(url);   
                plus.ios.deleteObject(app);
2025-06-27 08:58 负责人:无 分享
已邀请:
旧时光

旧时光 - 我是一位6年+前端开发的技术人员

var app = plus.ios.invoke('UIApplication', 'sharedApplication');
var setting = plus.ios.invoke('NSURL', 'URLWithString:', 'app-settings:');
plus.ios.invoke(app, 'openURL:options:completionHandler:', setting);
plus.ios.deleteObject(setting);
plus.ios.deleteObject(app);

用这个试试看

  • 四叶草秘密 (作者)

    可以了 谢谢,十分感谢

    2025-06-27 11:57

要回复问题请先登录注册