Skip to content
Permalink
Browse files
Merge pull request #263 from SailingSteve/CB-14013-InAppBrowser-Allow…
…CustomSchemes

CB-14013: (android) Change the InAppBrowser to allow custom schemes for oAuth
  • Loading branch information
infil00p committed Apr 12, 2018
2 parents 013a861 + 42df297 commit 50db5c498c3760a4df9ea4ab569de2832ac19f7f
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 2 deletions.
@@ -133,6 +133,7 @@ public class InAppBrowser extends CordovaPlugin {
private boolean hideUrlBar = false;
private boolean showFooter = false;
private String footerColor = "";
private String[] allowedSchemes;

/**
* Executes the request and returns PluginResult.
@@ -1110,6 +1111,29 @@ else if (url.startsWith("sms:")) {
LOG.e(LOG_TAG, "Error sending sms " + url + ":" + e.toString());
}
}
// Test for whitelisted custom scheme names like mycoolapp:// or twitteroauthresponse:// (Twitter Oauth Response)
else if (!url.startsWith("http:") && !url.startsWith("https:") && url.matches("^[a-z]*://.*?$")) {
if (allowedSchemes == null) {
String allowed = preferences.getString("AllowedSchemes", "");
allowedSchemes = allowed.split(",");
}
if (allowedSchemes != null) {
for (String scheme : allowedSchemes) {
if (url.startsWith(scheme)) {
try {
JSONObject obj = new JSONObject();
obj.put("type", "customscheme");
obj.put("url", url);
sendUpdate(obj, true);
return true;
} catch (JSONException ex) {
LOG.e(LOG_TAG, "Custom Scheme URI passed in has caused a JSON error.");
}
}
}
}
}

return false;
}

@@ -1232,4 +1256,4 @@ public void onReceivedHttpAuthRequest(WebView view, HttpAuthHandler handler, Str
super.onReceivedHttpAuthRequest(view, handler, host, realm);
}
}
}
}
@@ -36,7 +36,8 @@
'loadstart': channel.create('loadstart'),
'loadstop': channel.create('loadstop'),
'loaderror': channel.create('loaderror'),
'exit': channel.create('exit')
'exit': channel.create('exit'),
'customscheme': channel.create('customscheme')
};
}

0 comments on commit 50db5c4

Please sign in to comment.