前言
之前有次在面试的时候,面试官问了一个如何在WebView点击超链接启动类型QQ类似第三方应用,我当时的回答是用WebView与js交互可以做到。面试官听了没再说什么,应该是答案不是他期望的。今天发现原来可以这样实现,记录一下。
实现思路
在Web开发中,启动QQ来临时会话,可以通过一个URL链接
把20178888换成你的QQ号即可。在Android手机有些浏览器里这样也可以正常被调用。
但如果我们要使用Webview展示Web页面,页面里包含了上面的链接,却无法正常的启动QQ。
我们可以在WebView里重载 setWebViewClient方法
mWebView.setWebViewClient(new WebViewClient() {
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
这样Webview里面的超链接要是被触发了,Webview会去加载替代默认浏览器加载。
http://wpa.qq.com/msgrd?v=3&uin=748895431&site=qq&menu=yes
这个链接我们看起来这是一个很正常的http请求,通过抓包发现调用的QQ不仅仅是进行一次http的