ich ein Android-App bin zu schaffen und haben eine Aktivität wie folgt definiert:Android Textview machen http und benutzerdefinierte Schema urls klickbare
<activity
android:name="com.scheme.app.MainActivity"
android:screenOrientation="portrait"
android:theme="@style/MainActivityTheme">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data
android:host="invite"
android:scheme="schemeapp" />
<category android:name="android.intent.category.BROWSABLE" />
</intent-filter>
</activity>
Wenn schlagen die URL "schemeapp: // laden" die Benutzer wird zu MainActivity gebracht.
Ich habe eine Textview mit folgendem Inhalt:
textView.setText("Testing custom scheme - schemeapp://invite with http http://www.LMNGTFY.com");
Ich brauche die Web-URL (http://www.LMNGTFY.com) sowie die benutzerdefinierte URL zu machen (schemeapp: // laden) anklickbar.
Was habe ich schon versucht:
String text = "Testing custom scheme - schemeapp://invite with http http://www.LMNGTFY.com";
textView.setText(text);
Linkify.addLinks(textView, Linkify.WEB_URLS | Linkify.PHONE_NUMBERS | Linkify.EMAIL_ADDRESSES | Linkify.ALL);
Pattern urlDetect = Pattern.compile("(schemeapp):\\/\\/([a-zA-Z0-9.]+)");
Matcher matcher = urlDetect.matcher(text);
String scheme = null;
while (matcher.find()) {
String customSchemedUrl = matcher.group(0);
Uri uri = Uri.parse(customSchemedUrl);
scheme = uri.getScheme();
break;
}
if (!TextUtils.isEmpty(scheme)) {
Linkify.addLinks(textView, urlDetect, scheme);
}
Wenn ich die folgende Codezeile entfernen Web-URLs zu erkennen, das benutzerdefinierte Schema url funktioniert:
Linkify.addLinks(textView, Linkify.WEB_URLS | Linkify.PHONE_NUMBERS | Linkify.EMAIL_ADDRESSES | Linkify.ALL);
Wenn ich versuche, Fügen Sie http als benutzerdefinierte Schema-URL hinzu, die http-URLs sind nicht anklickbar.
EDIT: Klarstellung
Ich kann nicht HTML verwenden, da wird eine Benutzereingabe auch auf der Textview angezeigt werden und müssen verknüpft werden.
Können Sie bitte helfen. Dank
Dank, dass das funktionieren würde, aber ich kann nicht html setzt, wird die Textview auch von den Nutzern zeigt Eingang, so dass sie keine HTML-Tags werden. – manishKungwani
können Sie den Text vor dann wie userinput.replace ("schemeapp: //.* ..", " ligi
testing das gleiche auf unserer iPhone App vorverarbeiten, da der Inhalt Cross-Plattform ist. – manishKungwani