2014-04-09 25 views
7

Moja aplikacja może otworzyć linków domyślnie za pomocą tego:Android - Otwórz adres URL w przeglądarce zewnętrznej powoduje nieskończoną pętlę

<category android:name="android.intent.category.BROWSABLE" /> 
    <data 
     android:host="example.com"  
     android:scheme="http" /> 
    <data 
     android:host="www.example.com" 
     android:scheme="http" /> 
      .... 

Teraz mam łącza w moim app że nie popieram (jeszcze) . Więc tym, co robię w międzyczasie, otwórz go z zewnętrzną przeglądarką. tak:

String requestURL = "www.example.com/unsupportedlink"; 
Intent i = new Intent(Intent.ACTION_VIEW); 
i.setData(Uri.parse(requestURL)); 
mActivity.startActivity(i); 

Czego oczekuję, że będzie ona otwarta w przeglądarce, ale jeśli użytkownik wybrał, że wszystkie linki będą otwierane przez aplikację domyślnie („Allways otwarte”, a nie „tylko raz”) , aplikacja jest ponownie wywoływana i ponownie wysyła link do przeglądarki - powoduje ona nieskończoną pętlę. Jak mogę tego uniknąć?

+0

próbowałeś przy pomocy ważnego witryny, takie jak google.com lub coś? – kAnNaN

+0

Tak. Wypróbowałem to przy pomocy prawego URL-a. –

+0

Umieściłeś go bezpośrednio na przykład w mojej aplikacji i nie tworzyłem "danych" w mi XML 'startActivity (new Intent (Intent.ACTION_VIEW, Uri.parse (" www.google.es "))) ; ' – CristianCV

Odpowiedz

5

I found the answer:

Uri uri = Uri.parse(requestURL); 
Intent browserIntent = new Intent(Intent.ACTION_VIEW); 
browserIntent.setDataAndType(uri, "text/html"); 
browserIntent.addCategory(Intent.CATEGORY_BROWSABLE); 
context.startActivity(browserIntent); 
Powiązane problemy