我已经设置了正确的资产链接。我已经得到了 url 处理,因为它在 ios 中工作。该清单看起来正确,但它仍然没有将我的链接发送到应用程序,而是发送到网站。
这是我的 Android 清单
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myApp.app"
xmlns:tools="http://schemas.android.com/tools">
<application
android:label="myApp"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
tools:replace="android:name"
android:exported="true"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="https" />
<data android:scheme="http" />
<data android:host="myappwebsite.com" />
<data android:pathPrefix="/joinGroup"/>
</intent-filter>
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="https" />
<data android:scheme="http" />
<data android:host="myappwebsite.com" />
<data android:pathPrefix="/channel"/>
</intent-filter>
</activity>
<meta-data
android:name="flutterEmbedding"
android:value="2"/>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
</application>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="com.android.alarm.permission.SET_ALARM"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
</manifest>
我在模拟器上加载应用程序,然后运行:
adb shell am start -a android.intent.action.VIEW -c android.intent.category.BROWSABLE -d "https://myappwebsite.com/joinGroup?group_id=12345"
它继续带我到网站。有人有这方面的帮助吗?
首先,您不需要仅仅因为您有两个路径前缀就需要两个不同的意图过滤器。
将两个意图过滤器合并为一个。
<intent-filter android:autoVerify="true">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http" android:host="myappwebsite.com" android:pathPrefix="/joinGroup"/>
<data android:scheme="http" android:host="myappwebsite.com" android:pathPrefix="/login/evernorthltd/"/>
<data android:scheme="http" android:host="myappwebsite.com" android:pathPrefix="/channel"/>
<data android:scheme="http" android:host="myappwebsite.com" android:pathPrefix="/application/client-agreement/"/>
<data android:scheme="https" />
</intent-filter>
现在首先运行您的应用程序,然后转到终端并发布以下命令:
adb shell am start -a android.intent.action.VIEW \
-d "https://myappwebsite.com/joinGroup"
还要捕获应用程序内的 url 并路由到特定组,您可以使用以下包: