Android 深度链接未打开正确的活动
我有两个活动-MainActivity和DeepLinkActivity。MainActivity生成一个链接。当我从sms中单击DeepLink时,我希望DeepLinkActivity会打开,但MainActivity总是打开 清单文件如下所示:Android 深度链接未打开正确的活动,android,firebase,firebase-dynamic-links,Android,Firebase,Firebase Dynamic Links,我有两个活动-MainActivity和DeepLinkActivity。MainActivity生成一个链接。当我从sms中单击DeepLink时,我希望DeepLinkActivity会打开,但MainActivity总是打开 清单文件如下所示: <activity android:name=".MainActivity" android:theme="@style/Theme.AppCompat" > &l
<activity
android:name=".MainActivity"
android:theme="@style/Theme.AppCompat"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".DeepLinkActivity"
android:label="@string/app_name"
android:theme="@style/ThemeOverlay.MyDialogActivity">
<!-- [START deep_link_filter] -->
<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="blessd.mobi" android:scheme="http"/>
<data android:host="blessd.mobi" android:scheme="https"/>
</intent-filter>
<!-- [END deep_link_filter] -->
</activity>
深度链接活动
public class DeepLinkActivity extends AppCompatActivity implements
View.OnClickListener {
private static final String TAG = DeepLinkActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.deep_link_activity);
Log.d(TAG,"Deep Activity" );
FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnSuccessListener(this, new OnSuccessListener<PendingDynamicLinkData>() {
@Override
public void onSuccess(PendingDynamicLinkData pendingDynamicLinkData) {
// Get deep link from result (may be null if no link is found)
Uri deepLink = null;
if (pendingDynamicLinkData != null) {
deepLink = pendingDynamicLinkData.getLink();
}...
public类DeepLinkActivity扩展了appcompativity实现
View.OnClickListener{
私有静态最终字符串标记=DeepLinkActivity.class.getSimpleName();
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.deep_link_活动);
Log.d(标签“深度活动”);
FirebaseDynamicLinks.getInstance()
.getDynamicLink(getIntent())
.addOnSuccessListener(此,新的OnSuccessListener(){
@凌驾
成功时的公共无效(PendingDynamicLinkData PendingDynamicLinkData){
//从结果获取深度链接(如果未找到链接,则可能为空)
urideeplink=null;
如果(PendingDynamicClinkData!=null){
deepLink=pendingDynamicLinkData.getLink();
}...
谢谢您必须在您的意向过滤器上添加附加数据
<data
android:host=""
android:path=""
android:scheme="" />
在清单活动中,您必须具有筛选器:
<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="yourlinkhost.com"
android:scheme="http" />
<data
android:host="yourlinkhost.com"
android:scheme="https" />
</intent-filter>
它应该可以处理你的链接。可能你的链接有错误的主机方案-当我的链接有错误的主机时,我遇到了这样的问题。但是你的解决方案-看起来很好,同样我对我来说也很好。你点击的链接是什么?链接是blesd.page.link。这似乎是问题所在,我的意图中的链接是错误的。thanks链接确实不正确,应该是在firebase控制台-动态链接中创建的链接
builder.scheme(getString(R.string.config_scheme)) // "http"
.authority("your url") // your host
.appendPath(getString(R.string.path)) // "your path"
.appendQueryParameter(QUERY_PARAM, data)
<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="yourlinkhost.com"
android:scheme="http" />
<data
android:host="yourlinkhost.com"
android:scheme="https" />
</intent-filter>