我正在创建一个应用程序,创建并允许用户通过添加注释和/或链接来编辑HTML文件。然后,它允许用户通过Dropbox同步它,以便他们可以从任何其他Android设备或其计算机上的浏览器查看该文件。在这个程序中,我有一个WebView,它加载html页面并将其显示给用户。但是,如果我告诉webview加载缩短版本的URL(例如http://db.tt/DrSmhwq)而不是将其放在我的WebView中,它会在我的应用程序顶部的浏览器中打开它。如果我使用URL的长版本(例如http://dl.dropbox.com/u/5724095/DBNotes.html),它会在我的WebView中加载它就好了。所以我有几个问题:缩短的URL和长的URL有什么区别?是否存在导致此行为的URL,或者更有可能是Android WebView的问题?有没有人知道是否有办法从Dropbox Android应用程序中生成长版本的URL?否则,我将不得不指导我的用户访问他们的计算机上的网站并生成长链接并将其输入到我的应用程序中,这似乎不是一个好的解决方案。
编辑: 我做了一个指向更长的Dropbox网址并尝试调用wv.loadUrl()的网址,它还打开了浏览器,而不是将其加载到WebView中。所以我猜这是WebView处理重定向的默认行为。有谁知道如何让它加载它指向内部而不是浏览器窗口的页面?
答案 0 :(得分:1)
缩短的网址和长网址有什么区别?
服务器正在发出您未处理的重定向,因此调用了默认的WebView
行为 - 在浏览器中打开新的URL。
有谁知道如何让它加载它指向内部而不是浏览器窗口的页面?
实施WebViewClient
,尤其是shouldOverrideUrlLoading()
,以处理重定向。通过WebViewClient
将WebView
的实例附加到setWebViewClient()
。