Android中cordova把加载服务器的JS文件替换成本地JS文件

来源:互联网 发布:微信数据突然没有了 编辑:程序博客网 时间:2024/06/11 07:25

1.在java类中oncreate方法中加入以下代码:

super.appView.setWebViewClient(new MyCordovaWebViewClient(this, super.appView));

2.创建类MyCordovaWebViewClient

/** * 重载CordovaWebViewClient *  */public class MyCordovaWebViewClient extends CordovaWebViewClient {public MyCordovaWebViewClient(CordovaInterface cordova,CordovaWebView view) {super(cordova, view);}@SuppressLint({ "shouldInterceptRequest", "NewApi" })// 3.0以后@Overridepublic WebResourceResponse shouldInterceptRequest(WebView view,String url) {//这里面的条件可以自行写判断,以下是本人的判断条件if (url.indexOf("cordova.js") > -1) {return getWebResourceResponse("www/cordova.js");} else if (url.indexOf("plugins/org.apache.cordova") > -1) {String pluginUrl = "www/"+ url.substring(url.indexOf("plugins"));return getWebResourceResponse(pluginUrl);}return super.shouldInterceptRequest(view, url);}}/** * 获取js文件数据流 * @param url * @return */@SuppressLint("NewApi")private WebResourceResponse getWebResourceResponse(String url){WebResourceResponse res = null;try {InputStream instream = getResources().getAssets().open(url);res = new WebResourceResponse("text/javascript","UTF-8", instream);} catch (IOException e) {e.printStackTrace();}return res;}


0 0