2014-04-09 9 views
7

Meine App Links standardmäßig öffnen können mit dieser:Android - URL öffnen in externen Browser verursacht eine Endlosschleife

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

Nun, ich einen Link in meiner app, dass stütze ich (noch) nicht . Was ich in der Zwischenzeit mache ist es mit einem externen Browser zu öffnen. dies wie:

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

Was ich erwarte, ist, dass es auf dem Browser geöffnet sein wird, aber wenn der Benutzer wählt, dass alle Links von App standardmäßig geöffnet werden („Allways offen“ und nicht „Just Once“) Die App wird erneut aufgerufen und sendet den Link erneut an den Browser - es verursacht Endlosschleife. Wie kann ich das vermeiden?

+0

haben Sie versucht, eine gültige Website wie google.com oder etwas mit? – kAnNaN

+0

Ja. Ich habe es mit der richtigen URL versucht –

+0

Sie stellen es direkt zum Beispiel in mir app ich nicht erstellen "Daten" in mi XML 'startActivity (neue Absicht (Intent.ACTION_VIEW, Uri.parse (" www.google.es ")))) ; ' – CristianCV

Antwort

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); 
Verwandte Themen