我在我的iOS应用上实现了Firebase动态链接(非常棒!),现在我在Android上做同样的工作。 我设法通过点击动态网址启动我的Android应用,但我无法在其他活动上打开它而不是我的启动器活动。
这是我的manifest.xml文件:
<activity android:name=".Activity.SplashActivity"
android:theme="@style/SplashTheme"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Activity.RouteListActivity"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:host="mywebsite.com" android:scheme="http"/>
<data android:host="mywebsite.com" android:scheme="https"/>
<data
android:host="myapp.app.goo.gl/"
android:scheme="https" />
</intent-filter>
</activity>
当我点击网址时,浏览器会打开并重定向到我的应用,但会在SplashActivity上打开,而不是按预期在RouteListActivity上打开。
我错过了什么吗?
谢谢
答案 0 :(得分:0)
以下是我处理应用程序中深层链接的步骤。
第一
将此添加到将处理Deep的活动(清单文件中) 您的应用程序的链接。对我来说,这是我的主屏幕活动
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data
android:host="yourDomain"
android:scheme="http" />
<data
android:host="yourDomain"
android:scheme="https" />
</intent-filter>
下一步
转到添加了以上代码的活动。在onCreate中 活动的方法,您将处理收到的数据。
代码在科特林
FirebaseDynamicLinks.getInstance().getDynamicLink(intent).addOnSuccessListener{pendingDynamicLinkData ->
var deepLink: Uri? = null
if (pendingDynamicLinkData != null) {
deepLink = pendingDynamicLinkData.link
}
val path = deepLink?.path
val query = deepLink?.encodedQuery
//You can log the path here
//Generally the path consists of the link extracted
//from the deep link
val parts = path?.split("/")
if (parts?.get(2) == "something") {
val intent = Intent(this, YouActivity::class.java)
intent.putExtra("extra1", parts[3])
.putExtra("extra2", parts[1])
startActivity(intent)
}
}.addOnFailureListener { e -> //You can log the error here }
我在这里做了什么?
首先,我创建了FirebaseDynamicLinks实例。接下来,我使用了 提取动态链接数据以提取链接(deepLink?.path),其中 是打开我网站上特定页面的链接(例如文章)。 然后,我将链接拆分为多个片段,并将其用作信息 (意图中的附加功能)发送给我的活动并加载 所需数据。
您可以对各种链接执行此操作。在接收活动中接收数据,并根据接收到的数据从那里重定向到任何活动。
我希望这有助于解决您的问题。 让我知道是否有任何困惑。
谢谢