zoukankan      html  css  js  c++  java
  • android开发(30) 使用WebView,点击网页中的链接建立QQ 临时会话 WPA

    在PC端,我们可以通过一个URL链接,点击后启动QQ,这是很好的用户跳转体验。很方便。

    使用的链接如下:

    <a target="_blank" href="http://wpa.qq.com/msgrd?v=3&uin=8888888&site=qq&menu=yes"
    >click</a>

    其中把8888888 换成你的QQ号。

    那么在android里可以这么使用么? 实际上在 默认浏览器 (或者 UC) 里可以做到。而使用自定义的webView时,体验就不那么好了。

    我们经常在WebView里 进行 下面的重载 setWebViewClient的对象

    		webView1.setWebViewClient(new WebViewClient() {
    			public boolean shouldOverrideUrlLoading(WebView view, String url) {
    				view.loadUrl(url);
    				return true;
    			}
    		});
    

      如果这样做了,就无法跳转到QQ了。为什么呢?

    经捕获发送的请求包,我发现了在http://wpa.qq.com的请求中,实际还发送了这么一个请求:mqqwpa://im/chat开头的。

    mqqwpa:// 这部分URL的部分,叫做URL的sechme部分,他是http:// ,https://类似,而http:// ,https://是网页,可以打开的。交由webView处理,而其他的则交由默认处理。这样就呢过解决我们的 在URL链接点击后调用QQ。

    所以你需要重载 shouldInterceptRequest 方法,来截获其他的sechme处理。

    像下面这样:

    webView1.setWebViewClient(new WebViewClient() {
                public boolean shouldOverrideUrlLoading(WebView view, String url) {
                    view.loadUrl(url);
                    return true;
                }
    
                @Override
                public WebResourceResponse shouldInterceptRequest(WebView view,
                        String url) {
                    if (url.startsWith("http") || url.startsWith("https")) {
                        return super.shouldInterceptRequest(view, url);
                    } else {
                        Intent in = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
                        startActivity(in);
                        return null;
                    }
                }
            });
  • 相关阅读:
    设备管理器里“SM总线控制器”、“其它PCI桥设备”驱动有问题
    MapReduce实现两表的Join--原理及python和java代码实现
    Calendar类经常用法 日期间的转换 set方法有巨坑
    Java 装饰模式(4.4)
    LoadRunner访问Mysql数据库(转)
    linux下定时执行任务的方法
    docker 常用命令
    Docker exec与Docker attach
    docker容器跨服务器的迁移方式export和save(转)
    cpu时间 / cpu利用率计算
  • 原文地址:https://www.cnblogs.com/vir56k/p/3499064.html
Copyright © 2011-2022 走看看