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!
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
@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
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