分享

在 Cordova/Phonegap for Android 中编写 URL 过滤器

 quasiceo 2014-12-01
在 Cordova/Phonegap for Android 中编写 URL 过滤器

在《在 Cordova/Phonegap for Android 中调用 API》http:///forum.php?mod=viewthread&tid=10 只是调用 Cordova/Phonegap提供的默认功能,如果想扩展怎么办?本例中将以编写 URL 过滤器为例讲解一种编写扩展的方法。限于3.0以上版本。

本贴首发于:http:///forum.php?mod=viewthread&tid=11


创建 URL 过滤器类
创建 com.daonao.test4 包
在包中创建 UrlFilter 类,选择父类为 org.apache.cordova.api.CordovaPlugin

编写 URL 过滤器函数 shouldInterceptRequest
  1. @Override  
  2. @TargetApi(Build.VERSION_CODES.HONEYCOMB)  
  3. public WebResourceResponse shouldInterceptRequest(String url) {  
  4. ByteArrayInputStream stream = new ByteArrayInputStream(url.getBytes());  
  5. return new WebResourceResponse("text/plain", "UTF-8", stream);  
  6. }<em></em>  
该过滤器显示输入 URL 的内容,参考该过滤器可以自己设计出各种过滤器。

版本说明
Cordova/Phonegap 的 URL 过滤器插件是对 WebViewClient 中 shouldInterceptRequest 函数的封装。
http://developer./reference/android/webkit/WebViewClient.html#shouldInterceptRequest%28android.webkit.WebView,%20java.lang.String%29
从文档中可以看出,该函数限于 API Lvel 11
http://developer./gui ... ment.html#ApiLevels
代码为 HONEYCOMB,版本号为 Android 3.0.x,因此该过滤器的函数也限于该版本。
  1. @TargetApi(Build.VERSION_CODES.HONEYCOMB)  

编辑 Cordova 的配置文件 config.xml
复制 Cordova 项目中的 res/xml/config.xml 到当前项目的 res/xml/config.xml
直接编辑 config.xml 代码,增加一个 feature 元素
  1. <feature name="UrlFilter">  
  2.     <param name="android-package" value="com.daonao.test4.UrlFilter"/>  
  3.     <url-filter value="file:///android_asset/www/"/>  
  4. </feature>  

在虚拟机中运行的效果图如下


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多