项目环境:用的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(@"已安装");
}