Я создаю андроид приложение и определил активность следующим образом:Android TextView сделать HTTP и пользовательские схемы URLS интерактивные
<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>
При попадании в URL "schemeapp: // пригласить" в пользователь будет отправлен в MainActivity.
У меня есть TextView со следующим содержанием:
textView.setText("Testing custom scheme - schemeapp://invite with http http://www.LMNGTFY.com");
Мне нужно сделать веб-адрес (http://www.LMNGTFY.com), а также пользовательский URL (schemeapp: // инвайт) интерактивными.
То, что я уже пробовал:
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);
}
Если удалить следующую строку кода для обнаружения веб-адреса, пользовательские схемы URL работы:
Linkify.addLinks(textView, Linkify.WEB_URLS | Linkify.PHONE_NUMBERS | Linkify.EMAIL_ADDRESSES | Linkify.ALL);
Если я пытаюсь добавьте http в качестве настраиваемого URL-адреса схемы, URL-адреса URL не будут доступны.
EDIT: Разъяснение
Я не могу использовать HTML, так как данные, вводимые пользователем, также будет отображаться на TextView и должно быть связаны между собой.
Не могли бы вы помочь. Благодаря
спасибо, что будет работать, но я не могу поставить HTML, то TextView также покажет вход со стороны пользователей, так что они не будут использовать HTML-теги. – manishKungwani
вы можете предварительно обработать текст до этого, например userinput.replace ("schemapp: //.* ..", " ligi
тестировать то же самое на нашем приложении для iPhone, поскольку контент является кросс-платформенным .. – manishKungwani