说明

创建项目

cordova create zmtask com.zhumadev.zmtask zmtask

添加安卓平台

cordova platform add android@^10.1.2

注意:此出用的是10.1.2 版本 太新的版本google对跨域访问进行了比较强的限制

调试环境

{

"MIN_SDK_VERSION": 22,

"SDK_VERSION": 30,

"GRADLE_VERSION": "6.7.1",

"MIN_BUILD_TOOLS_VERSION": "30.0.2",

"AGP_VERSION": "4.2.2",

"KOTLIN_VERSION": "1.5.21",

"ANDROIDX_APP_COMPAT_VERSION": "1.3.1",

"ANDROIDX_WEBKIT_VERSION": "1.4.0",

"GRADLE_PLUGIN_GOOGLE_SERVICES_VERSION": "4.3.8",

"IS_GRADLE_PLUGIN_GOOGLE_SERVICES_ENABLED": false,

"IS_GRADLE_PLUGIN_KOTLIN_ENABLED": false

}

注意下面两个:

"GRADLE_VERSION": "6.7.1",

"MIN_BUILD_TOOLS_VERSION": "30.0.2",

需要修改项目下的这个文件:

node_modules\cordova-android\framework\cdv-gradle-config-defaults.json

cordova-plugin-device 随便添加一个插件 不然会报错 没有找到plugin js

cordova plugin add cordova-plugin-device

\android\CordovaLib\src\org\apache\cordova\engine\SystemWebViewClient.java

最后面的方法做出以下修改 访问/store和有ajax的请求定位到服务端 按照参数的查询ajax=1 展示没有插件可以处理 只能是path

@Override

public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {

Uri uri=request.getUrl();

String path= uri.getPath();

String ajax= uri.getQueryParameter("ajax");

//LOG.w(TAG, "assetLoaderBuilder path : "+path);

if(path.startsWith("/Store")||"1".equals(ajax)){

LOG.w(TAG, "assetLoaderBuilder remote path : "+path);

return null;

}

LOG.w(TAG, "assetLoaderBuilder local path : "+path);

//LOG.w(TAG, "shouldInterceptRequest R? : " + request.getUrl());

return this.assetLoader.shouldInterceptRequest(uri);

}

AndroidManifest.xml

据说加了下面一句可以阻止一个错误但是我本地有时候不行

Caused by: java.lang.ClassNotFoundException: Didn't find class "android.webkit.TracingController" on path: