Android如何使用Java从Android的深层链接获取值?

时间:2018-12-16 07:32:41

标签: java android deep-linking

Android如何使用Java从Android的深层链接获取值? 我正在我的android应用程序中实现深层链接,现在我想像斜杠后一样获取所有参数。 我的网址= www.exmple.com/poduct-name/prodcut_id

www.exmple.com/iphone/147895

所以我想从上面的URL获取ID-147895?

2 个答案:

答案 0 :(得分:1)

尝试-

 URI uri = new URI("www.exmple.com/iphone/147895");
 String[] spPath= uri.getPath().split("/");
 String idStr = spPath[spPath.length-1];
 int id = Integer.parseInt(idStr);

谢谢

答案 1 :(得分:0)

对于您要开始进行深度链接处理的activity,请按如下所示将此意图过滤器放入清单的<activity>...</activity>中:

<intent-filter>
      <action android:name="android.intent.action.VIEW"/>
      <category android:name="android.intent.category.BROWSABLE"/>
      <category android:name="android.intent.category.DEFAULT"/>
      <data
          android:host="www.example.com"
          android:pathPattern="/.*"
          android:scheme="https"/>
 </intent-filter>

然后在您的活动中,如果将其标记为“ singleTask”,则可以使用onNewIntent(Intent intent)方法从意图中获取数据,或者如果将其标记为“ newTask”,则应调用解析方法在onCreate(...)中,并通过调用getIntent()方法获得意图。解析过程将是这样的,  1.对于onCreate():

protected void onCreate(@Nullable Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
   setContentView(R.layout.your_view);
   if (getIntent() != null && getIntent().getData() != null)
   {
      //parse your data here,
      //it's the deeplink you want "https://www.example.com/..."
   }
}
  1. 对于newIntent()

    受保护的void onNewIntent(Intent intent) {    super.onNewIntent(intent);    如果(意图!= null && intent.getData()!= null)    {       //在这里解析您的数据,       //这是您想要的深层链接“ https://www.example.com/ ...”    } }