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

来源:互联网 发布:淘宝详情页面尺寸 编辑:程序博客网 时间:2024/06/04 12:27

调用

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;    }
原创粉丝点击