unity3d 判断是否安装指定app android and ios

news/2024/7/20 21:58:29 标签: unity3d, app, ios, android

调用

IsInstallApp("jp.naver.line.android","line://")
IsInstallApp("com.whatsapp","whatsapp://")

C#

    static Dictionary<string, bool> IsInstallAppTable = new Dictionary<string, bool>();
    public static bool IsInstallApp(string packageAndroidName, string packageIOSName)
    {
        if (IsInstallAppTable.ContainsKey(packageAndroidName) || IsInstallAppTable.ContainsKey(packageIOSName))
        {
#if UNITY_ANDROID && !UNITY_EDITOR
            return IsInstallAppTable[packageAndroidName];
#elif (UNITY_IOS || UNITY_IPHONE) && !UNITY_EDITOR
            return IsInstallAppTable[packageIOSName];
#elif !UNITY_IOS && !UNITY_IPHONE && UNITY_EDITOR
            return true;
#endif
        }
        else
        {
#if UNITY_ANDROID && !UNITY_EDITOR
        try
        {
            using (AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
            using (AndroidJavaObject currentActivity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity"))
            using (AndroidJavaObject packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager"))
            {
                AndroidJavaObject launchIntent = null;
                try
                {
                    launchIntent = packageManager.Call<AndroidJavaObject>("getLaunchIntentForPackage", packageAndroidName);
                }
                catch (System.Exception ex){}
                if (launchIntent == null){
                    IsInstallAppTable.Add(packageAndroidName,false);
                    return false;
                 }
                else{
                    IsInstallAppTable.Add(packageAndroidName,true);
                    return true;
            }
            }
        }
        catch (System.Exception ex)
        {
        }
        return false;
#elif (UNITY_IOS || UNITY_IPHONE) && !UNITY_EDITOR
            bool isIos = _IOS_IsInstallApp(packageIOSName);
            IsInstallAppTable.Add(packageIOSName, isIos);
            return isIos;
#elif !UNITY_IOS && !UNITY_IPHONE && UNITY_EDITOR
            return true;
#endif

        }
        return false;
    }

IOS

    bool _IOS_IsInstallApp(const char *url)
    {
        if (url == NULL) {
            return false;
        }
        NSURL *nsUrl = [NSURL URLWithString:[NSString stringWithUTF8String:url]];
        if ([[UIApplication sharedApplication] canOpenURL:nsUrl]) {
            return true;
        }
        return false;
    }

http://www.niftyadmin.cn/n/1339121.html

相关文章

EXCEL图片导出

2019独角兽企业重金招聘Python工程师标准>>> public void setPicture1(){ String str "E:/a.jpg"; String str1 "E:/b.jpg"; FileOutputStream fileOut null; BufferedImage bufferImg null; …

unity3d iPhone X 适屏代码 屏幕适应方案

添加获取手机型号方法 #import <sys/utsname.h>(NSString*)getDeviceVersion {struct utsname systemInfo;uname(&systemInfo);NSString *deviceVersion [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];return deviceVersion; }在…

[译] 现代垃圾回收

关于 Go 语言最新的垃圾回收器&#xff08;garbage collector&#xff09;&#xff0c;我最近阅读了许多篇赞扬它的文章&#xff0c;但是它们都让我将信将疑&#xff0c;其中的不少来自 Go 语言的官方团队博客。他们像是暗示着在垃圾回收领域已经发生了一个巨大的突破。 以下是…

unity3d 获取使用内存大小 android and ios

获取的是应用在移动设备上面的实时允许是的进程使用内存大小和你直接在移动设备上查看进程的内存使用一模一样&#xff0c;绝对精确&#xff0c;废话不说上代码&#xff0c;你懂的 C# public static int GetUseMemory(){int memory -1; #if UNITY_ANDROIDtry{AndroidJavaCla…

Linux打包压缩解压缩tar、gzip、bzip2

压缩与解压1 gzipgzip test.py #压缩后为test.py.gzgzip -d test.py.gz #解压文件2 bzip2bzip2 test.py #压缩后为test.py.bz2bzip2 -d test.py.gz #解压文件3 tar选项内容-c 创建打包文件-r 追加文件到打包文档-t 列出打包内容-f 指定打包名-j …

unity3d 屏幕适配 iPhone X 解决方案

添加获取手机型号方法 #import <sys/utsname.h>(NSString*)getDeviceVersion {struct utsname systemInfo;uname(&systemInfo);NSString *deviceVersion [NSString stringWithCString:systemInfo.machine encoding:NSUTF8StringEncoding];return deviceVersion; } …

Centos7+Open***使用Windows AD验证登陆

我们上一篇你文章介绍了Centos7open***使用本地用户和密码验证登陆的配置介绍&#xff0c;今天我们介绍Centos7Open***使用Windows AD验证登陆&#xff0c;具体就不多介绍了&#xff0c;今天还是使用的是上一节安装的配置环境&#xff0c;对于今天的环境介绍&#xff0c;我们只…

unity3d 获取cpu 型号 android

很多人获取android cup型号并不是很准备 这里发布一下 获取cup比较准确的解决方案&#xff0c;直接上代码 C# public static string GetCPU(){string cpu ""; #if UNITY_ANDROIDtry{AndroidJavaClass unityPlayer new AndroidJavaClass("com.unity3d.player.…