2017-08-13 2 views
0

Also habe ich eine nette App für das Surfen im Internet gemacht und es funktioniert ziemlich gut. Wenn ich meine App starte, werden Links in meiner App geöffnet und alles läuft reibungslos. Wenn ich jedoch auf einen Link außerhalb der App klicke (in einer SMS zum Beispiel), fragt mich Android, welcher Browser meinen Link öffnen soll, und meins ist nicht aufgelistet. Ich versuche, meine App in der Lage zu machen, externe Links zu öffnen und mit ihnen umzugehen.Wie wähle ich meine Browser-App als meinen Standard-Browser?

Danke für Ihre Hilfe!

EDIT: behobenes

fand ich einen Weg, es funktioniert. Hier ist ein Ausschnitt aus meiner AndroidManifest.xml

<activity 
     android:name=".MainActivity" 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     <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" /> 
     </intent-filter> 
    </activity> 

Und hier ist, wie ich abrufen und verwenden Sie die Absicht, dass meine App mit einem Link gestartet:

MainActivity.java

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    //... 

    Uri startIntentData = getIntent().getData(); 
    if(startIntentData!=null) { 
     String intentUrl = startIntentData.toString(); 
     if(intentUrl.contains("http://")||intentUrl.contains("https://")) { // checking if the intent's data was meant to be a url 
      addTab(intentUrl); // a method that handle opening urls by calling webView.loadUrl(String url) 
     } 
    } 

Ich weiß nicht, ob es der sicherste oder der effizienteste Weg ist, aber zumindest funktioniert es!

Antwort

0

Ich weiß nicht, wie meine Anwendung als Standardbrowser

Sie nicht zu machen. Der Benutzer kann festlegen, dass Ihre App zum Standardbrowser wird. Richten Sie einfach eine <activity> mit der entsprechenden <intent-filter> ein, um nach ACTION_VIEWIntents für welche Schemata und MIME-Typen zu suchen, die Sie unterstützen. Android und der Benutzer werden es von dort aus nehmen.

+0

Ich möchte nicht, dass meine App der Standardbrowser ist, nur um die Auswahl der Eröffnungslinks in meiner App zu ermöglichen. Das ist also ein offensichtliches Problem? Kannst du mir bitte ein Beispiel geben? – Gueg

+0

@Gueg: Ich weiß nicht, was Ihre App handhaben kann. Ich kann dir nicht genau sagen, was du einbeziehen sollst. '' ist in [der Dokumentation] (https://developer.android.com/guide/components/intents-filters.html#ExampleFilters) sowie in Büchern und Kursen zur Entwicklung von Android-Apps enthalten. Siehe auch vorhandene Open-Source-Webbrowser und welche '' Elemente sie verwenden, z. B. [Lightning] (https://github.com/anthonycr/Lightning-Browser/blob/dev/app/src/main/ AndroidManifest.xml) oder [der AOSP-Browser] (https://android.googlesource.com/platform/packages/apps/Browser2/+/master/AndroidManifest.xml). – CommonsWare

+0

Vielen Dank für Ihre Hilfe, ich habe endlich gefunden, wie es funktioniert. Ich markiere deine Antwort als akzeptiert, da deine Links mir wirklich geholfen haben, es herauszufinden. – Gueg

Verwandte Themen