android – 在Webview中单击文本时启动活动意图
作者:互联网
我的xml中有一个webview,如下所示:
<WebView
android:id="@+id/webView"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
我正在加载这样的webview:
String webView_text = "Lorem ipsum..............**<a><u>Link to fire intent</u></a>**";
WebView webView= (WebView) findViewById(R.id.webView);
webView.loadData(String.format(htmlText, webView_text), "text/html", "utf-8");
webView.setWebViewClient(new WebViewClient()
{
// Override URL
public boolean shouldOverrideUrlLoading(WebView view, String url)
{
Intent intent = new Intent(getApplicationContext(),OtherActivity.class);
startActivity(intent);
return true;
}
});
请注意我通过使用html标记创建了我的字符串(webView_text)中的链接,并覆盖了触发意图的函数.在这种情况下它不是这样做的.这里有什么问题?我不确定Android Webview是否支持该标签(我相信它应该).这里我的错误是什么.谢谢你.
解决方法:
你可以通过在清单中的活动意图过滤器中定义方案来实现.
对于样本创建活动(A)和活动(B)并在清单中定义如下:
<activity android:name="A" >
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.VIEW" />
<data android:scheme="activity_a" />
</intent-filter>
</activity>
<activity android:name="B" >
<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<action android:name="android.intent.action.VIEW" />
<data android:scheme="activity_b" />
</intent-filter>
</activity>
如果在你的HTML中有这样的linke:
<a href="activity_b://b">Activity B</a>
单击它时,启动活动B.
活动A与它类似.
你可以从Source Code获得源代码
注意:如果对此方法使用webview,则必须覆盖方法shouldOverrideUrlLoading()并比较每个URL.
标签:android,android-intent,android-activity,android-xml,android-webview 来源: https://codeday.me/bug/20190928/1828788.html