unity&ios.jpeg
在unity項目中,如何打開ios app設置頁面
- 首先要用到unity調(diào)用ios代碼:
/// <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];
}
}
}
兩個方法實現(xiàn)功能一樣灯荧,第一種簡潔礁击,第二種可以在方法體類實現(xiàn)多個方法,定義多個變量逗载,后面我要實現(xiàn)的功能就必須第二種和第一種混合來用哆窿。
在unity項目中,如何判斷是否獲取通知授權
- 第一步同上厉斟,定義unity調(diào)用ios的方法名
/// <summary>
/// 獲取是否有通知權限
/// 回調(diào)函數(shù):JudgeNotifyCallBack
/// </summary>
/// <returns></returns>
[DllImport("__Internal")]
public static extern void JudgeNotifyPermission();
- 然后寫入oc代碼
//判斷是否給了通知權限
#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 {
///已經(jīng)開啟通知權限
UnitySendMessage("IOSCube","JudgeNotifyCallBack","1");
}
}];
/// 判斷權限執(zhí)行一次
UnitySendMessage("IOSCube","JudgeNotifyCallBack","-1");
}
}
- 這里需要import一個UserNotifications庫挚躯,注意在oc++文件中只能用#import引入庫,不能用<>擦秽,這種會直接報錯码荔。另外引入位置盡量提前。
這里用到了ios回調(diào)unity方法
UnitySendMessage("IOSCube","JudgeNotifyCallBack","1");
三個參數(shù)的含義上一篇文章已經(jīng)介紹感挥,不再贅述缩搅。
編譯出錯不要慌,先clear触幼,在build誉己。