2017-01-02 1 views
3

내 앱에 딥 링크를 구현했지만 성공적으로 문제가 있습니다.Android 딥 링크 특정 URL 생략

<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:host="*.example.com" 
     android:scheme="https"/> 
</intent-filter> 

이 텐트 필터는 모든 링크를 처리하지만 난 내가 지금까지 시도 무엇

https://www.example.com/hello/redirect/ 

즉 특정 URL을 잡으려고하지 않으 :

내가 모든 진입 시도 직접 잡으려는 URL

<data 
    android:host="*example.com" 
    android:scheme="https" 
    android:pathPrefix="/m/"> 
<data 
    android:host="*example.com" 
    android:scheme="https" 
    android:pathPrefix="/c/"> 
<data 
    android:host="*example.com" 
    android:scheme="https" 
    android:pathPrefix="/p/"> 
... 

t 암탉 내 홈페이지 URL https://www.example.com가 작동하지 않습니다.

내가

android:pathPrefix="/" 

를 사용하는 경우 다음이 내가 생략 할 URL을 포함하여 다시 모든 URL을 잡기 시작합니다.

나는 또한 android:pathPattern을 사용해 보았지만이 문자열과 모두를 시도 할 때 잘 작동하는 ^((?!redirect).)*$과 같은 복잡한 정규식을 이해할 수 없습니다.

특정 URL을 어떻게 생략 할 수 있습니까?

UPDATE : @PLNech here 제안, 나는 내 홈 페이지 즉의 URL을 잡으려고 내가 android:pathPrefix를 사용하여 잡아 android:path: "/"를 사용하는 데 필요한 모든 URL을 추가

https://www.example.com/

<data 
    android:host="*.example.com" 
    android:scheme="https" 
    android:path="/"/> 
<data 
    android:host="*example.com" 
    android:scheme="https" 
    android:pathPrefix="/m/"> 
<data 
    android:host="*example.com" 
    android:scheme="https" 
    android:pathPrefix="/c/"> 
<data 
    android:host="*example.com" 
    android:scheme="https" 
    android:pathPrefix="/p/"> 

답변

5

Android deep linking mechanism 명시 적으로 안드로이드 딥 링크 메커니즘에서 일부 URL을 제외 할 수있는 방법을 제공하지 않습니다 당신이 eitherandroid:pathPrefix와 접두사와 일치하거나 *를 사용하거나 할 수있는 android:pathPattern와 와일드 카드와 일치하는 경로를, android:path와 명시 적 경로를 포함 포함 할 수 있습니다 .*. 귀하의 경우에는

, 당신은 "/"를 사용하고 (홈페이지 포함) 앱으로 당신의 웹 사이트에 모든 링크가 하나에, 또는 모든 딥 링크 공유에게 공통 접두어가됩니다.

또한 인 것으로 보이는 airbnb의 DeepLinkDispatch 라이브러리를 살펴볼 수도 있습니다.

2

문제를 올바르게 이해하면 특정 URL 목록에서 특정 URL을 제외하고 싶습니다. 당신이 시도한 것은 좋은 방법이었습니다.

android:pathPattern 당신이 말한 것처럼 복잡한 정규식 패턴을 이해하지 못합니다.

문제를 해결할 수있는 유일한 방법은 생략하고 싶은 URL을 변경하는 것입니다. 호스트 또는 해당 URL의 일부를 변경하거나 example.com의 이름을 example2.com/hello/redirect/으로 변경하십시오.

+1

귀하의 의견을 듣습니다. 그것이 나를위한 마지막 수단입니다.하지만 그 전에 문제를 해결하기 위해 구현할 수있는 해결책이 있는지 알아야합니다. –