如何从浏览器打开我的 React Native 应用程序?

问题描述 投票:0回答:2

我想从浏览器打开我的应用程序。

示例:我打开浏览器,输入:

https://open.my.app
app://www.example.com
,然后就会出现我的应用程序选项。

我阅读了有关深层链接的内容,并且非常确定我正确设置了我的项目,但是当我尝试输入并运行时没有任何反应:

https://open.my.app, app://www.example.com

我的 AndroidManifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.somemobileapp">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>

    <application
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:allowBackup="false"
      android:theme="@style/AppTheme">
      <activity
        android:name=".MainActivity"
        android:launchMode="singleTask"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
        android:windowSoftInputMode="adjustResize">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
            <category android:name="android.intent.category.BROWSABLE" />
            <!-- Change these two in the future to a proper one -->
            <data android:scheme="https" android:host="www.example.com" />
            <data android:scheme="app" android:host="open.my.app" />
        </intent-filter>
      </activity>
      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
    </application>

</manifest>

所以即使在此之后,它也不起作用。

android react-native deep-linking applinks
2个回答
0
投票

我知道这听起来很奇怪,但首先保持数据标签对我有用

<intent-filter>
<!-- data on first -->
     <data android:scheme="http" android:host="abc.in"/>
        <action android:name="android.intent.action.MAIN" />
    <action android:name="android.intent.action.VIEW"/>
    <category android:name="android.intent.category.LAUNCHER" />
    <category android:name="android.intent.category.BROWSABLE"/>
    <category android:name="android.intent.category.DEFAULT"/>
</intent-filter>

0
投票

此代码对我有用,我认为您需要将应用程序发布到Playstore,以便在验证默认链接打开后自动打开开关,如果您正在调试,则需要通过转到Appinfo手动启用它

<manifest xmlns:android="http://schemas.android.com/apk/res/android">
  <uses-permission android:name="android.permission.INTERNET"/>
  <application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="false" android:theme="@style/AppTheme">
    <activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|screenSize|smallestScreenSize|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustResize" android:exported="true">
      <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
      </intent-filter>
      <intent-filter android:autoVerify="true"> <!-- for default support to open, only works after publish -->
        <action android:name="android.intent.action.VIEW"/>
        <category android:name="android.intent.category.DEFAULT"/>
        <category android:name="android.intent.category.BROWSABLE"/>

        <!-- supported web addresses -->
        <data android:scheme="https" android:host="*.google.com" />
        <data android:scheme="http" android:host="*.google.com" />
        <data android:scheme="https" android:host="google.com" />
        <data android:scheme="http" android:host="google.com" />
        <data android:scheme="google"/>
        
      </intent-filter>
    </activity>
  </application>
</manifest>

参考图片: image

© www.soinside.com 2019 - 2024. All rights reserved.