ios怎么判断微信是否安装?

项目环境:用的cordova开发,微信登录插件使用 https://github.com/xu-li/cordova-plugin-wechat
当前ios版本:11.2.2

if([WXApi isWXAppInstalled])
{
NSLog(@"wechat is install");
}
else
{
NSLog(@"wechat is not install");
}

    if([UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"weixin://"])
{
     NSLog(@"wechat is install");
}
else
{
NSLog(@"wechat is not install");
}

    使用这两个方法,无论手机有无安装微信,都打印已安装。
    有没有大神知道应该怎么解决?感激不尽

1、在.m文件中到入头文件:#import "WXApi.h"
2、调用是否安装了微信的方法isWXAppInstalled:

     if ([WXApi isWXAppInstalled]) {

         NSLog(@"安装了微信");

    }

if([UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"weixin://"])
{
NSLog(@"未安装");
}
else
{
NSLog(@"已安装");
}

if([UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"weixin://"])
{
NSLog(@"未安装");
}
else
{
NSLog(@"已安装");
}

在info.plist 添加(Array属性) LSApplicationQueriesSchemes

然后里面 添加两个(string属性) weixin 和 wechat

图片说明

// 设置好后再调用 判断是否安装微信

+(BOOL)booWeixin{

// 判断是否安装微信

if ([WXApi isWXAppInstalled] ){

    //判断当前微信的版本是否支持OpenApi

    if ([WXApi isWXAppSupportApi]) {

        NSLog(@"安装了");

        return YES;

    }else{

        NSLog(@"请升级微信至最新版本!");

        return NO;

    }

}else{

    NSLog(@"请安装微信客户端");

    return NO;

}

}

可以使用canOpenUrl方法去探测,是否支持打开某个scheme。可以间接判断是否安装了某软件

if([UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"weixin://"])
{
NSLog(@"未安装");
}
else
{
NSLog(@"已安装");
}