|
unity&ios.jpeg
在unity项目中,如何打开ios app设置页面
/// <summary> /// 打开App设置页面 /// </summary> [DllImport("__Internal")] public static extern void OpenAppSettings();
然后在xcode端找到UnityAppController类,在最底部加入代码:
//打开应用设置页面 extern "C" void OpenAppSettings() { NSURL*url=[NSURL URLWithString:UIApplicationOpenSettingsURLString]; if([[UIApplication sharedApplication]canOpenURL:url]){ [[UIApplication sharedApplication]openURL:url]; } }
可以直接在extern "C" 后面接方法或者:
extern "C" { //可以此处定义各种全局变量 void OpenAppSettings() { NSURL*url=[NSURL URLWithString:UIApplicationOpenSettingsURLString]; if([[UIApplication sharedApplication]canOpenURL:url]){ [[UIApplication sharedApplication]openURL:url]; } } }
两个方法实现功能一样,第一种简洁,第二种可以在方法体类实现多个方法,定义多个变量,后面我要实现的功能就必须第二种和第一种混合来用。
在unity项目中,如何判断是否获取通知授权
/// <summary> /// 获取是否有通知权限 /// 回调函数:JudgeNotifyCallBack /// </summary> /// <returns></returns> [DllImport("__Internal")] public static extern void JudgeNotifyPermission();
//判断是否给了通知权限 #import <UserNotifications/UserNotifications.h> extern "C" void JudgeNotifyPermission(){ if (@available(iOS 10 , *)) { [[UNUserNotificationCenter currentNotificationCenter] getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) { if (settings.authorizationStatus == UNAuthorizationStatusDenied || settings.authorizationStatus == UNAuthorizationStatusNotDetermined) { /// 没有权限 UnitySendMessage("IOSCube","JudgeNotifyCallBack","0"); } else { ///已经开启通知权限 UnitySendMessage("IOSCube","JudgeNotifyCallBack","1"); } }]; /// 判断权限执行一次 UnitySendMessage("IOSCube","JudgeNotifyCallBack","-1"); } }
这里需要import一个UserNotifications库,注意在oc++文件中只能用#import引入库,不能用<>,这种会直接报错。另外引入位置尽量提前。
这里用到了ios回调unity方法
UnitySendMessage("IOSCube","JudgeNotifyCallBack","1");
三个参数的含义上一篇文章已经介绍,不再赘述。
编译出错不要慌,先clear,在build。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
×
|