You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by ni...@apache.org on 2020/12/01 19:08:54 UTC
[cordova-android] 01/01: Revert plugin loading change and implement
plugin handler differently
This is an automated email from the ASF dual-hosted git repository.
niklasmerz pushed a commit to branch webviewassetloader
in repository https://gitbox.apache.org/repos/asf/cordova-android.git
commit 1f0ad3ec4052ed22f502bb906d4cb655154052f6
Author: Niklas Merz <ni...@apache.org>
AuthorDate: Tue Dec 1 20:08:15 2020 +0100
Revert plugin loading change and implement plugin handler differently
---
.../apache/cordova/CordovaPluginPathHandler.java | 8 +-------
.../src/org/apache/cordova/CordovaWebViewImpl.java | 6 +++---
.../apache/cordova/engine/SystemWebViewClient.java | 21 ++++++++++++++-------
3 files changed, 18 insertions(+), 17 deletions(-)
diff --git a/framework/src/org/apache/cordova/CordovaPluginPathHandler.java b/framework/src/org/apache/cordova/CordovaPluginPathHandler.java
index 0bdf4a8..b56c2b6 100644
--- a/framework/src/org/apache/cordova/CordovaPluginPathHandler.java
+++ b/framework/src/org/apache/cordova/CordovaPluginPathHandler.java
@@ -7,18 +7,12 @@ import androidx.webkit.WebViewAssetLoader;
*/
public class CordovaPluginPathHandler {
- private final String path;
private final WebViewAssetLoader.PathHandler handler;
- public CordovaPluginPathHandler(String path, WebViewAssetLoader.PathHandler handler) {
- this.path = path;
+ public CordovaPluginPathHandler(WebViewAssetLoader.PathHandler handler) {
this.handler = handler;
}
- public String getPath() {
- return path;
- }
-
public WebViewAssetLoader.PathHandler getPathHandler() {
return handler;
}
diff --git a/framework/src/org/apache/cordova/CordovaWebViewImpl.java b/framework/src/org/apache/cordova/CordovaWebViewImpl.java
index 8e2d623..9d67972 100644
--- a/framework/src/org/apache/cordova/CordovaWebViewImpl.java
+++ b/framework/src/org/apache/cordova/CordovaWebViewImpl.java
@@ -106,9 +106,6 @@ public class CordovaWebViewImpl implements CordovaWebView {
nativeToJsMessageQueue.addBridgeMode(new NativeToJsMessageQueue.NoOpBridgeMode());
nativeToJsMessageQueue.addBridgeMode(new NativeToJsMessageQueue.LoadUrlBridgeMode(engine, cordova));
- pluginManager.addService(CoreAndroid.PLUGIN_NAME, "org.apache.cordova.CoreAndroid");
- pluginManager.init();
-
if (preferences.getBoolean("DisallowOverscroll", false)) {
engine.getView().setOverScrollMode(View.OVER_SCROLL_NEVER);
}
@@ -116,6 +113,9 @@ public class CordovaWebViewImpl implements CordovaWebView {
// This isn't enforced by the compiler, so assert here.
assert engine.getView() instanceof CordovaWebViewEngine.EngineView;
+ pluginManager.addService(CoreAndroid.PLUGIN_NAME, "org.apache.cordova.CoreAndroid");
+ pluginManager.init();
+
}
@Override
diff --git a/framework/src/org/apache/cordova/engine/SystemWebViewClient.java b/framework/src/org/apache/cordova/engine/SystemWebViewClient.java
index db7bfb2..09a47d6 100755
--- a/framework/src/org/apache/cordova/engine/SystemWebViewClient.java
+++ b/framework/src/org/apache/cordova/engine/SystemWebViewClient.java
@@ -76,16 +76,23 @@ public class SystemWebViewClient extends WebViewClient {
.setDomain("localhost")
.setHttpAllowed(true);
- // Check if there a plugins with pathHandlers
- PluginManager pluginManager = this.parentEngine.pluginManager;
- if (pluginManager != null) {
- for (CordovaPluginPathHandler handler : pluginManager.getPluginPathHandlers()) {
- assetLoaderBuilder.addPathHandler(handler.getPath(), handler.getPathHandler());
- }
- }
+
assetLoaderBuilder.addPathHandler("/", path -> {
try {
+ // Check if there a plugins with pathHandlers
+ PluginManager pluginManager = this.parentEngine.pluginManager;
+ if (pluginManager != null) {
+ for (CordovaPluginPathHandler handler : pluginManager.getPluginPathHandlers()) {
+ if (handler.getPathHandler() != null) {
+ WebResourceResponse response = handler.getPathHandler().handle(path);
+ if (response != null) {
+ return response;
+ }
+ };
+ }
+ }
+
if (path.isEmpty())
path = "index.html";
InputStream is = parentEngine.webView.getContext().getAssets().open("www/" + path, AssetManager.ACCESS_STREAMING);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org