Unity 添加ios原生彈窗UIAlertController + 跳轉app自己的系統設置界面 (>=ios10)

直接上代碼

static UIAlertController* uiSettingAlert = nil;
void ShowSettingAlert(const char* title, const char* content, const char* leftTxt, const char* rightTxt)
    {
        if (uiSettingAlert == nil) {
            uiSettingAlert = [UIAlertController alertControllerWithTitle:[[NSString alloc] initWithUTF8String:title] message:[[NSString alloc] initWithUTF8String:content] preferredStyle:UIAlertControllerStyleAlert];
            //爲alert增加一個Action,
            UIAlertAction *okActin=[UIAlertAction actionWithTitle:[[NSString alloc] initWithUTF8String:rightTxt] style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action){
                NSLog(@"你點擊了確定");
                Go2AppSettings();
                // 不要dismiss否則崩潰
//                [uiSettingAlert dismissViewControllerAnimated:NO completion:nil];
                // uiSettingAlert = nil;
            }];
            [uiSettingAlert addAction:okActin];
            //爲alert增加一個‘取消’按鈕
            UIAlertAction *cancelAction=[UIAlertAction actionWithTitle:[[NSString alloc] initWithUTF8String:leftTxt] style:UIAlertActionStyleCancel handler:^(UIAlertAction * _Nonnull action){
                NSLog(@"你點擊了取消");
                // 不要dismiss否則崩潰
//                [uiSettingAlert dismissViewControllerAnimated:NO completion:nil];
                // uiSettingAlert = nil;
            }];
            [uiSettingAlert addAction:cancelAction];
        }
        //顯示
        [UnityGetGLViewController() presentViewController:uiSettingAlert animated:YES completion:nil];
    }

    // 跳轉到應用自己的設置界面,注意ios版本 >= 10
    void Go2AppSettings()
    {
        NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
        if( [[UIApplication sharedApplication]canOpenURL:url] ) {
            [[UIApplication sharedApplication]openURL:url options:@{} completionHandler:nil];
        }
    }

unity調用代碼


using System.Runtime.InteropServices;
using UnityEngine;


[DllImport("__Internal")]
private static extern void ShowSettingAlert(string title, string content, string leftTxt, string rightTxt);

public class Test : MonoBehaviour
{
    public void OpenIOSAlertView()
    {
        string title = "“標題";
        string content = "內容";
        string cancelTxt = "取消";
        string okTxt = "去設置";
        ShowSettingAlert(title, content, cancelTxt, okTxt);
    }
}

IOS原生彈窗參考

https://www.jianshu.com/p/75cef8007e75

https://www.jianshu.com/p/24255cd669b1

https://www.jianshu.com/p/af6f8260a811

https://www.jianshu.com/p/011d7f04729e

https://www.cnblogs.com/feelingzt/p/5354960.html

https://blog.csdn.net/lolita0164/article/details/79290564

https://stackoverflow.com/questions/44012861/ios-openurl-to-uiapplicationopensettingsurlstring-preferences-app-crashes

https://www.jianshu.com/p/9e90cb866fdf

https://www.jianshu.com/p/455d5f0b3656

IOS跳轉App自己的系統設置(>= 10)

https://blog.csdn.net/a910577347/article/details/78180274

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章