2011-02-05 70 views
0

我正在制作一个应用程序,它可以通过添加注释和/或链接来创建并允许用户编辑HTML文件。然后,它允许用户通过Dropbox进行同步,以便他们可以从任何其他Android设备或计算机上的浏览器查看该文件。在这个程序中,我有一个加载html页面并将其显示给用户的WebView。但是,如果我告诉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的长版本?否则,我将不得不引导我的用户访问他们计算机上的网站,并生成长链接并将其输入到我的应用中,这似乎不是一个好的解决方案。Android WebView加载保管箱缩短的网址

编辑: 我做了一个指向较长的Dropbox url的bitical url,并试图调用wv.loadUrl(),它也打开了浏览器,而不是将其加载到WebView中。所以我猜测这是WebView处理重定向的默认行为。有谁知道我可以如何使它加载到其内部本身而不是浏览器窗口的页面?

回答

1

缩短的URL和长的URL有什么区别?

服务器发出一个你没有处理的重定向,所以调用默认的WebView行为 - 在浏览器中打开新的URL。

有没有人知道我可以如何使它加载到其本身而不是浏览器窗口本身的页面?

执行WebViewClient,特别是shouldOverrideUrlLoading()来处理重定向。通过setWebViewClient()WebViewClient的实例附加到WebView

+0

我认为这种方法看起来很有希望,但是我怎样才能得到它重定向到的URL呢?传递给shouldOverrideUrlLoading()的URL将被缩短,不是吗?当我回到我的电脑时,我会对此进行测试,如果有效,请接受您的答案。 – FoamyGuy 2011-02-05 19:27:37