【发布时间】:2015-09-04 15:35:53
【问题描述】:
尽管在 SO 中很好地讨论了 shouldOverrideUrlLoading() 的问题(我可能阅读了其中的大部分内容),但我仍然没有找到解决方案来解决我认为已经解决的如此普遍的问题。
问题:如何在 shouldOverrideUrlLoading() 中停止外部链接,例如“http://www.example.com”,对于我使用 webView.loadDataWithBaseURL() 加载的页面,其中 baseUrl 是“file:///...”?
当触摸(单击)外部链接时,不会调用我的 shouldOverrideUrlLoading() 覆盖方法。 Here 它说“无法根据基本 URL 解析的 URL 被丢弃在地板上(你不会得到任何回调,无论是 shouldOverrideUrlLoading 还是 onPageStarted)。” Android 开发者网站说 here 说“如果您通过调用 ... loadDataWithBaseURL() 加载页面,那么您将收到 页面上此类链接的 shouldOverrideUrlLoading() 回调。” 这是我的代码:
public void loadEpub(final EpubInfo epubInfo)
{
post(new Runnable()
{
@Override
public void run()
{
epubBaseUrl = "file://" + epubInfo.path;
if (!epubBaseUrl.endsWith("/"))
epubBaseUrl += "/";
String path = epubBaseUrl + epubInfo.baseUrl;
String page = generatePage(epubInfo);
EpubWebView.super.loadDataWithBaseURL(path, page, "text/html", "UTF-8", null);
}
});
}
我的 baseUrl(路径)是“file:///storage/sdcard0/Android/data/...”。
非常感谢。
【问题讨论】: