2017-01-07 4 views
0

을 가지고 있지 때이 시나리오 구현하는거야 :만들려면 안드로이드 브라우저에서 내 웹 사이트의 링크 내 응용 프로그램을 시작하지만 링크가 특정 부분

WWW를. example.com -> 내 앱

HTTP 시작합니다 : - : // www.example.com -> 시작합니다 내 앱> 내 앱을 시작

HTTP // example.com

https : //로 example.com -> 내 앱을 시작

https : //로 www.example.com -> 시작합니다 내 앱

하지만 ...

에 http : // example.com/dont/start/app -> 기본 브라우저에서 링크를 엽니 다.

intent-filter를 사용하면 항상 내 앱을 열 수 있습니다.

<activity 
     android:name=".MainActivity" 
     android:label="@string/app_name"> 
     <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:scheme="http" /> 
      <data android:scheme="https" /> 
      <data android:host="example.com" /> 
     </intent-filter> 
    </activity> 
+0

자바 코드를 표시 할 수 있습니까? –

+0

@PranjalCholadhara 코드가 추가되었습니다. –

답변

1

그런 경우 브라우저를 직접 여는 것이 한 가지 방법입니다. 이

onCreate() { 
    if(uri is in path we don't want) { 
    open browser directly via intent 
    finish(); 
    return; 
    } 
    //Handle a URL we do want 
} 

직접 브라우저를 열려면처럼, 당신은 기본 브라우저 How to find default browser set on android device를 통해 무엇인지 파악하고 명시 적으로 실행할 수 있습니다.

+0

작동하지 않습니다. 이것은 오류입니다 : java.lang.NullPointerException : NULL 객체 참조에 가상 메소드 'boolean android.content.Intent.migrateExtraStreamToClipData()'를 호출하려고 시도했습니다. –

+0

알려진 버그. 기기가 설치되지 않은 기기에서 GooglePlayServices가 필요한 것을 사용하려고 할 때 발생합니다. 당신이하고있는 것은 그것을 필요로합니다.이 질문에서 논의 된 어떤 것도 그것을 필요로하지 않기 때문에 나는 전혀 모른다. –