如何深入链接到Android应用程序中的片段。可能吗?

时间:2016-03-30 16:40:51

标签: android deep-linking

那么深层链接到片段是否可能?因此,我的主要活动会根据用户点击的内容启动不同的片段。

因此,我使用清单文件中的intent过滤器为我的主要活动创建了一个深层链接。但你怎么会这样做片段?

任何帮助都会有所帮助

感谢。

2 个答案:

答案 0 :(得分:4)

你当然可以做到这一点。您需要解析活动中的意图并使用片段管理器填充您希望的片段。将Action和Fragment替换为您自己的。

@Override
protected void onNewIntent(final Intent intent) {
    super.onNewIntent(intent);
    parseIntent(intent);
}

private void parseIntent(Intent intent) {
    final String action = intent.getAction();

    if (action != null) {
        if (Action.<ONE>.equals(action)) {
            FragmentManager fm = getFragmentManager();
            Fragment<ONE> fragment = (Fragment<ONE>) Fragment.instantiate(this,
            Fragment<ONE>.class.getCanonicalName(),
            getIntent().getExtras());
            FragmentTransaction ft = fm.beginTransaction();
            ft.add(R.id.fragment_id, fragment);
            ft.commit();
        } else if (Action.<TWO>.equals(action)) {
            FragmentManager fm = getFragmentManager();
            Fragment<TWO> fragment = (Fragment<TWO>) Fragment.instantiate(this,
            Fragment<TWO>.class.getCanonicalName(),
            getIntent().getExtras());
            FragmentTransaction ft = fm.beginTransaction();
            ft.add(R.id.fragment_id, fragment);
            ft.commit();
        } 
    }
}

动作只是对于给定意图应该是唯一的字符串。它们可以是任何东西。像:

“myapp.image_included”或 “myapp.link_url”等

答案 1 :(得分:0)

是的,您可以在活动中调用片段(从哪个活动转到片段类) - 在 onCreate 方法中调用

Intent appLinkIntent = getIntent();
String appLinkAction = appLinkIntent.getAction();
Uri appLinkData = appLinkIntent.getData();

String recipeId = appLinkData.getLastPathSegment();

if(recipeId.equals("mybag")){
  call fragment 1(i am sending link like this -(example) 
   www.google.com/mybag)
 }else{
 call fragment 2
}