Android:在自定义Web视图中检测并打开外部链接

时间:2018-03-21 14:05:39

标签: java android android-fragments android-activity webview

在付出所有努力之后,我面临着一个奇怪的问题,我仍然无法解决它。 问题是: 我有一个textview,它直接从Twitter加载数据。推文可能包含许多链接,并且会在文本视图中显示,但在点击链接时,它们会在android default browser中打开。我想要做的是当用户点击任何链接how will I detect which link has been clickedopen my webview instead of default browser

这是我到目前为止所达到的目标:

    <TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Hello www.google.com Thank You"
    android:autoLink="web"
    android:id="@+id/activity_main_textview"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

爪哇

TextView textView = (TextView) findViewById(R.id.activity_main_textview);
textView.setText("www.google.com is first link, www.facebook.com is second link, www.instagram.com is third link");
textView.setMovementMethod(LinkMovementMethod.getInstance());

1 个答案:

答案 0 :(得分:0)

在WebView驻留的活动代码中的Android清单中添加:

<activity android:name=".WebViewActivity">
<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"
        android:host="*" />

</intent-filter>
</activity>

在TextView上我做了:

<TextView
    android:id="@+id/link"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="http://www.google.com"
    android:autoLink="web"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

这对我有用。