oschina-app源码解析-webview处理超链接
来源:互联网 发布:php构造方法怎么写 编辑:程序博客网 时间:2024/06/03 01:42
前面已经介绍,oschina-app源码解析-webview重组html,在这个过程中还有些细节性的问题,分别介绍下,首先介绍下webview来处理超链接。
方法就是实现WebViewClient里的 shouldOverrideUrlLoading的方法,来处理超链接被点击后的具体操作,oschina-app操作:
1、分析url,获取资源类型、和资源id
2、根据资源类型,跳转到对应的资源内容页面,并根据id加载数据。
上代码:
mWebView.setWebViewClient(UIHelper.getWebViewClient());
WebViewClient实现:
/** * 获取webviewClient对象 * * @return */public static WebViewClient getWebViewClient() {return new WebViewClient() {@Overridepublic boolean shouldOverrideUrlLoading(WebView view, String url) {showUrlRedirect(view.getContext(), url);return true;}};}
根据url实现跳转:
/** * url跳转 * * @param context * @param url */public static void showUrlRedirect(Context context, String url) {URLs urls = URLs.parseURL(url);if (urls != null) {showLinkRedirect(context, urls.getObjType(), urls.getObjId(),urls.getObjKey());} else {openBrowser(context, url);}}public static void showLinkRedirect(Context context, int objType,int objId, String objKey) {switch (objType) {case URLs.URL_OBJ_TYPE_NEWS:showNewsDetail(context, objId);break;case URLs.URL_OBJ_TYPE_QUESTION:showQuestionDetail(context, objId);break;case URLs.URL_OBJ_TYPE_QUESTION_TAG:showQuestionListByTag(context, objKey);break;case URLs.URL_OBJ_TYPE_SOFTWARE:showSoftwareDetail(context, objKey);break;case URLs.URL_OBJ_TYPE_ZONE:showUserCenter(context, objId, objKey);break;case URLs.URL_OBJ_TYPE_TWEET:showTweetDetail(context, objId);break;case URLs.URL_OBJ_TYPE_BLOG:showBlogDetail(context, objId);break;case URLs.URL_OBJ_TYPE_OTHER:openBrowser(context, objKey);break;}}
URLs urls = URLs.parseURL(url);这句话其实就是解析url为两个参数:链接类型,和对应新闻条目的ID,这个代码根据不同url进行不同分析。
0 0
- oschina-app源码解析-webview处理超链接
- oschina-app源码解析-webview重组html
- oschina-app源码解析-系统参数保存
- OSChina 的URL重写处理类源码
- Webview解析html源码
- oschina-app 的源码分析-主页面滑动切换
- oschina-app 源码分析-数据缓存(离线功能)
- oschina-app源码分析-提醒标签BadgeView使用方法
- oschina-app源码分析-提醒标签BadgeView使用逻辑流程
- oschina-app源码分析-提醒标签BadgeView使用逻辑流程
- WebView加载网页以及处理里面的超链接点击事件
- STK App源码解析
- STK App源码解析
- OSChina Android 客户端源码
- webview中拦截超链接
- android webview拦截超链接
- webView拦截超链接
- STK App源码解析
- Eclipse编辑java文件报Unhandled event loop exception错误的解决办法
- Android获取已安装应用信息(图标,名称,版本号,包)
- LeetCode:Convert Sorted Array to Binary Search Tree
- android eclipse debug 调试 Source not found
- JNI学习积累之二 ---- 数据类型映射、域描述符说明
- oschina-app源码解析-webview处理超链接
- 从你的全世界路过
- 穷人富人的思维方式|不是几年的工作经验让你加工资,而是你的能力让你加工资
- Struts2中请求不存在的action或者不存在的jsp解决办法
- ST大豆 - 1万到百万之路,你也能行
- 计算机视觉代码合集
- The content of element type "package" must match "(result-types?,interceptors?,default-intercept .
- android--Service
- 根据指定条件获得窗口的函数