Linking in react native can open just one app

react-native-app-link example
react native open app from link
react-native open app-settings/android
react native deep link to app store
react native deep linking not working
react native linking email
react native open another app
react-native-deep-linking github

UPDATE 1 I removed return from code and now links work on IOS. But on android I can't open any app. Any idea?

I am trying to open different apps from my app.

return Linking.openURL("twitter://");
return Linking.openURL("instagram://");

But it doesn’t work. I configured IOS by documentation. On android doesn’t work too. While...

return Linking.openURL("tripadvisor://");

Work just fine. Any idea why I can’t open other apps. This is code that I am using (open app if installed or open store with it but sometimes even store doesn't open) what I did wrong:

let appUrl = "instagram://";
Linking.canOpenURL(appUrl).then(supported => {
            if (!supported) {
              Alert.alert("",
                "",
                [
                  {text: "go to store", onPress: this.openStorePress},
                  {text: "cancel", onPress: () => { }, style: 'cancel'},
                ],
                { cancelable: false }
              );
            } else {
              return Linking.openURL(appUrl);
            }
        }).catch(err => {
            console.error(err);
        });

Linking, When you open a link with the mailto scheme, your operating system will open an installed mail application. Similarly, there are schemes for making phone calls  react-native-rename <NewName>. you have to replace your new app name with the <NewName>. Ex. react-native-rename NewAppName. 4. To change the bundle identifier for iOS you have to open the Xcode and have to change from there but for the android package you can add an extra parameter to rename the package too.

Your code looks pretty solid, here's an example of how I open twitter in my app.

const twitterUrlScheme = `twitter://user?screen_name=${twitterUsername}`;

Linking.canOpenURL(twitterUrlScheme)
    .then((supported) =>
        Linking.openURL(
            supported
                ? twitterUrlScheme
                : `https://www.twitter.com/${twitterUsername}`
            )
        )
        .catch((err) => console.error('An error occurred', err));

I think perhaps your issue might be the return Linking.openUrl, I'm not sure you need the return in that statement. Does it work if you remove the return? Otherwise, it might help to move your Alert outside of the then-block from canOpenUrl.

If your app was launched from an external url registered to your app you can NOTE: For iOS, in case you also want to listen to incoming app links during your  For React Native, there is the official Firebase package: https://invertase.io/oss/react-native-firebase/. It contains all the Firebase services and we'll be installing and using the Analytics one. Install the core and analytics packages: yarn add @react-native-firebase/app yarn add @react-native-firebase/analytics.

You haven't completed the " fot twitter and instagram, I don't know whether you made the same mistake in app too, if yes, fixing that might solve it.

Deep Linking is a technique in which a given URL or resource is used to open a specific page or screen on mobile. So, instead of just  React Native smooths the transformation from web to mobile app since it is a JavaScript framework. That’s why one can easily use React Native to create a simple application like blog. Another point is that the number of native app developers available on the market is much less than Javascript developers.

I have used only url and it's working both iOS and android

Linking.openURL('https://www.facebook.com/');

linking to a React Native app for both iOS and Android using React on one of our links, we will open in our new app and navigate to the  Deep linking consists of using a uniform resource identifier (URI) that links to a specific location within a mobile app rather than simply launching the app. Deferred deep linking allows users to deep link to content even if the app is not already installed.

Try to use a package like:

https://github.com/react-native-community/react-native-share

You can try to use only some of it's functions or look into the native code from there and create some bridge functions in the native code and then export them to be used in JS code.

Note: you will have to use real devices for the tests.

Deep linking does not only mean to have a clickable link which opens up your app but it is a smart way to navigate to the desired page. They have great documentation to get you through this step, and it should be about as easy as npm i -g create-react-native-app && create-react-native-app my-app. In your my-app directory, open app

Clicking on a link and open it in the browser can be done using a React Native The Linking API in react native application is used for deep linking process. Use the React Native command line tools to generate a new React Native project called "AwesomeProject", then run react-native run-ios inside the newly created folder. You should see your new app running in the iOS Simulator shortly. react-native run-ios is just one way to run your app - you can also run it directly from within Xcode or Nuclide.

Let's suppose that we want a URI like `mychat://chat/Eric` to open our app and link Read the Expo linking guide for more information about how to configure Let's configure the native iOS app to open based on the mychat:// URI scheme. SupriyaKalghatgi changed the title react-native link does not link with 0.59.0 react-native link does not link with 0.59.0 for Android Mar 14, 2019 This comment has been minimized. Sign in to view

A deep link is simply an intent filter system that allows the user to access a certain AndroidManifest.xml to tell the incoming links to launch this particular app. react-native-rename . Rename react-native app with just one command. This package assumes that you created your react-native project using react-native init.. Note: This package does not attempt to properly rename build artifacts such as ios/build or Cocoa Pod installation targets.

Comments
  • When you use return it also breaks out of particular function you are currently running. So in your upper example it would only trigger first one. I do not see myself any point using return with Linking.openURL -method so maybe just leave it out of your code.
  • Please prepare a reproduction repository. In your specific issue, anybody can help you just when seeing your sample codes. thanks.
  • @1110 do not hesitate to ask me for help to find the urls you need
  • I get false for supported if I use url "twitter://" or "instagram://" (android & ios) can you try those urls in your code please?
  • Using the url "twitter://" works for me on initial tests on my iOS device. Curious it doesn't work on yours... did you try removing that return statement?
  • Yes I removed return statement but it works on IOS now but on android don't. Does it work on your android device? If I use "fb://" on IOS facebook is opened but on android nothing happens.
  • No, it’s typo I forgot it
  • Urls are fine I want to open app if it’s on phone. And it is just nothing happen
  • Just put link of app, if app is there it will open by self... btw that worked to me!
  • By link of the app you mean like "twitter://"?
  • I have that already. This is something else :-/ On android doesn’t work too.