URL 语法
URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。

URL的一般语法格式为:

(带方括号[]的为可选项):

protocol :// hostname[:port] / path / [;parameters][?query]#fragment 
 1   public static class CommonWebViewClient extends WebViewClient {

         @Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
Log.d("leo", "[webViewUrl]" + url);
if (url.startsWith("tel")) {// 机构电话
Intent intent = new Intent(Intent.ACTION_DIAL);
intent.setData(Uri.parse(url));
view.getContext().startActivity(intent);
return true;
}
Uri uri = Uri.parse(url);
if ("baonajia".equals(uri.getScheme())) {
if ("organization".equals(uri.getHost())) {// 课程详情跳转到机构详情
Organization organization = new Organization();
organization.setId(uri.getQueryParameter("organization_id"));
organization.setName(uri.getQueryParameter("organization_name"));
Intent intent = new Intent(view.getContext(), OrganizationDetailActivity.class);
intent.putExtra(Const.EXTRA_ORG, organization);
view.getContext().startActivity(intent);
} else if ("course".equals(uri.getHost())) {// 机构详情跳转到课程详情
new CourseTask(view, uri.getQueryParameter("course_id")).execute();
} else if ("school".equals(uri.getHost())) {// 机构详情跳转到校区列表
String orgId = uri.getQueryParameter("organization_id");
Intent intent = new Intent(view.getContext(), SchoolListActivity.class);
intent.putExtra(Const.EXTRA_ORG_ID, orgId);
view.getContext().startActivity(intent);
} else if ("album".equals(uri.getHost())) {// 机构详情跳转到相册列表
String orgId = uri.getQueryParameter("organization_id");
Intent intent = new Intent(view.getContext(), PhotoAlbumListActivity.class);
intent.putExtra(Const.EXTRA_ORG_ID, orgId);
view.getContext().startActivity(intent);
} return true;
} else {
view.loadUrl(url);
return true;
}
} @Override
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
Log.e(TAG,
String.format("errorCode: %s, description: %s, when open: %s", errorCode, description, failingUrl));
view.loadUrl(URLCenter.getError());
}
}

Android WebView 拦截自定义协议的更多相关文章

  1. Android webView输出自定义网页

    这次来使用webview输出网页型数据.因为这样的数据好使用富文本编辑器,有各种各样的拓展. 上代码: package controller.hzl.com.testcall; import andr ...

  2. android deep link(深度链接)与自定义协议!

    此自定义仅供参考! 首先打开androidManifest.xml 在MainActivity中添加如下内容: <activity android:name=".MainActivit ...

  3. Android为TV端助力 deep link(深度链接)与自定义协议!

    此自定义仅供参考! 首先打开androidManifest.xml 在MainActivity中添加如下内容: <activity android:name=".MainActivit ...

  4. 移动开发首页业界资讯移动应用平台技术专题 输入您要搜索的内容 基于Java Socket的自定义协议,实现Android与服务器的长连接(二)

    在阅读本文前需要对socket以及自定义协议有一个基本的了解,可以先查看上一篇文章<基于Java Socket的自定义协议,实现Android与服务器的长连接(一)>学习相关的基础知识点. ...

  5. Android WebView常见问题及解决方案汇总

    Android WebView常见问题解决方案汇总: 就目前而言,如何应对版本的频繁更新呢,又如何灵活多变地展示我们的界面呢,这又涉及到了web app与native app之间孰优孰劣的争论. 于是 ...

  6. Android WebView常见问题解决方案汇总

    问题目录: 1.为WebView自定义错误显示界面: 2.WebView cookies清理 3.清理cache 和历史记录 4.判断WebView是否已经滚动到页面底端 5.URL拦截 6.处理We ...

  7. android WebView详解,常见漏洞详解和安全源码

    这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析.  转载请注明出处:http://blog.csdn.net/se ...

  8. Android之Android WebView常见问题及解决方案汇总

    如有转载,请声明出处: 时之沙: http://blog.csdn.net/t12x3456 Android WebView常见问题解决方案汇总: 就目前而言,如何应对版本的频繁更新呢,又如何灵活多变 ...

  9. Android WebView 常见问题

    1.为WebView自定义错误显示界面: /** * 显示自定义错误提示页面,用一个View覆盖在WebView */ protected void showErrorPage() { LinearL ...

随机推荐

  1. Javascript高级程序设计——垃圾收集

    javascipt具有自动垃圾回收机制 局部变量只在函数执行过程中存在,在这个过程中,会为局部变量在栈上(或堆)内存分配相应空间,来储存他们的值,当函数执行完,局部变量就没有存在的必要了,所以这个时候 ...

  2. PowerDesigner的使用(一)

    一. PowerDesigner 功能 1. 需求管理:记录需求,分析设计模型 2. 生成文档:生成HTML格式文档,方便沟通. 3. 影响度分析:模型之间连接起来,同步修改功能. 4. 数据映射:提 ...

  3. OpenCV进阶之路:神经网络识别车牌字符

    1. 关于OpenCV进阶之路 前段时间写过一些关于OpenCV基础知识方面的系列文章,主要内容是面向OpenCV初学者,介绍OpenCV中一些常用的函数的接口和调用方法,相关的内容在OpenCV的手 ...

  4. 使用srvany.exe将任何程序作为Windows服务运行

    使用srvany.exe将任何程序作为Windows服务运行 2011 年 3 月 7 日 !本文可能 超过1年没有更新,今后内容也许不会被维护或者支持,部分内容可能具有时效性,涉及技术细节或者软件使 ...

  5. 【Java MyBatis Generator】使用generator自动生成Dao,Mapping和实体文件

    具体请参照: http://blog.csdn.net/fengshizty/article/details/43086833 按照上面博客地址,下载Generator的依赖包: 如下是我的配置文件: ...

  6. 1个简单的Log

    #pragma once #include <windows.h> #include <process.h> class CLogger { public: static CR ...

  7. POJ 3322(广搜)

    ---恢复内容开始--- http://poj.org/problem?id=3322 题意:http://jandan.net/2008/01/24/bloxorz.html就是这个鬼游戏 我也是郁 ...

  8. wx.ListCtrl简单使用例子

    效果图: 示例代码: #! /usr/bin/env python #coding=utf-8 import wx import sys packages = [('jessica alba', 'p ...

  9. 【转】.so兼容32位和64位

    本文转自:http://blog.csdn.net/fwt336/article/details/51700300 安卓的兼容性是一个很令人头疼的问题,这几天又遇到了,还好还是解决了. 我遇到的问题是 ...

  10. ios 在ios9中 NSNotificationCenter addObserver 不会影响对象释放

    如题,ios9上,  [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(test) name:@&qu ...