iOS,Android调用手机QQ与指定用户或公众号聊天界面

最近产品那边有需求。需要在自己的App中跳到QQ的公众服务号。直接在QQ公众号中咨询。去QQ开发平台 看了下。没有看到QQ公众号的信息呀(内心是拒绝的)。但是有些App确实又可以跳转(怎么搞得)。 然后去网上找了下。但是发现800开头的公众号可以,400开头的却不可以。(内心想骂Tecent)。奇葩,同是公众号。400的不可以,而我们公司的就是400开头的。
腾讯客服经理给了个连接 (http://wpa.b.qq.com/cgi/wpa.php?ln=2&uin=4008205555)。试了下使用网页是可以成功打开的。然后可以成功调用QQ客户端的。
但是能不能不需要调用这个网页,就能在iOS中直接使用协议调用客户端的?当然可以。
总结下来,有两种方式:(话说公众号回复信息是用钱买的,现使用招行的公众号: 4008205555 , 钱多, 请自行替换你自己的公众号)
1. 使用协议直接调用QQ客户端。
2. 调用网页去打开客户端。

具体代码如下: (已测,400 和 800 都可以实现跳转)
1. 调用网页去打开客户端。
iOS :

NSString *url = @"http://wpa.b.qq.com/cgi/wpa.php?ln=2&uin=4008205555";
NSURL *phoneURL = [NSURL URLWithString:url];
UIWebView *webView = [UIWebView new];
[webView loadRequest:[NSURLRequest requestWithURL:phoneURL]];
[self.view addSubview:webView];

Android:


webview = (WebView) findViewById(R.id.webview);
webview.loadUrl("http://wpa.b.qq.com/cgi/wpa.php?ln=2&uin=4008205555");

2. 使用协议直接调用QQ客户端
协议:mqqwpa://im/chat?chat_type=crm&uin=800095555&version=1&src_type=web&web_src=http:://wpa.b.qq.com  (800095555 这个也是招行的和那个400 是一样的)
400(命途多舛)的公众号,这里还有点悲剧,不能直接使用公众号, 还需要多做一步。否则不成功。  800的公众号可以直接替换uin为你的公众号。

400的能调用的UIN的获取方式

Android代码:

webview = (WebView) findViewById(R.id.webview);
webview.loadUrl("http://wpa.b.qq.com/cgi/wpa.php?ln=2&uin=(你的400公众号)");

WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
webview.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// TODO Auto-generated method stub
// 返回值是true的时候控制去WebView打开,为false调用系统浏览器或第三方浏览器
view.loadUrl(url);
System.out.println("-------------"+url);
return true;
}
});

监听这个url打开的QQ客户端,那个url才是真正的可以打开qq客户端的uin。 (或者使用浏览器也是可以滴),所以对于招行的公众号 4008205555 获取的id是 800095555 然后替换协议中的uin就可以了
iOS的代码见底部代码。

直接调用QQ客户端的代码如下:
Android:

String url="mqqwpa://im/chat?chat_type=crm&uin=800095555&version=1&src_type=web&web_src=http:://wpa.b.qq.com";
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));

iOS:


NSString *url = @"mqqwpa://im/chat?chat_type=crm&uin=800095555&version=1&src_type=web&web_src=http:://wpa.b.qq.com";
NSURL *phoneURL = [NSURL URLWithString:url];
UIWebView *webView = [UIWebView new];
[webView loadRequest:[NSURLRequest requestWithURL:phoneURL]];
[self.view addSubview:webView];

iOS的代码 点这里

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值