Normalize scheme for URL on Android (#21561)
Summary:
Android requires lowercase for URL scheme. This commit d00bdb9bb8
fixed it but on React Native side.
Because it is Android specific, it should be fixed on Android side.
Android has method to normalize url scheme: https://developer.android.com/reference/android/net/Uri.html#normalizeScheme()
Pull Request resolved: https://github.com/facebook/react-native/pull/21561
Differential Revision: D10287868
Pulled By: hramos
fbshipit-source-id: f5e474164fdb2cfd49bd8ee51da17de3f1341a9c
This commit is contained in:
parent
9965ea5a2e
commit
4b6f02ea75
|
@ -57,13 +57,6 @@ class Linking extends NativeEventEmitter {
|
||||||
* See https://facebook.github.io/react-native/docs/linking.html#openurl
|
* See https://facebook.github.io/react-native/docs/linking.html#openurl
|
||||||
*/
|
*/
|
||||||
openURL(url: string): Promise<any> {
|
openURL(url: string): Promise<any> {
|
||||||
// Android Intent requires protocols http and https to be in lowercase.
|
|
||||||
// https:// and http:// works, but Https:// and Http:// doesn't.
|
|
||||||
if (url.toLowerCase().startsWith('https://')) {
|
|
||||||
url = url.replace(url.substr(0, 8), 'https://');
|
|
||||||
} else if (url.toLowerCase().startsWith('http://')) {
|
|
||||||
url = url.replace(url.substr(0, 7), 'http://');
|
|
||||||
}
|
|
||||||
this._validateURL(url);
|
this._validateURL(url);
|
||||||
return LinkingManager.openURL(url);
|
return LinkingManager.openURL(url);
|
||||||
}
|
}
|
||||||
|
|
|
@ -79,7 +79,7 @@ public class IntentModule extends ReactContextBaseJavaModule {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Activity currentActivity = getCurrentActivity();
|
Activity currentActivity = getCurrentActivity();
|
||||||
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
|
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url).normalizeScheme());
|
||||||
|
|
||||||
String selfPackageName = getReactApplicationContext().getPackageName();
|
String selfPackageName = getReactApplicationContext().getPackageName();
|
||||||
ComponentName componentName = intent.resolveActivity(
|
ComponentName componentName = intent.resolveActivity(
|
||||||
|
|
Loading…
Reference in New Issue