2014-03-06 122 views
1

在我的應用程序中,我在webview中加載「http」url。這個URL加載正確,但是有一些內部URL用協議「sheet://」加載。加載這個URL時,我得到一個錯誤「不支持協議」。任何人都可以請幫助如何解決這個問題?如何使用協議「sheet://」加載網址?在webview中加載自定義網址

PS:我正在使用shouldOverrideUrlLoading方法來加載url。

這是代碼我使用

public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     if(url.contains("sheet://")){ 
      Intent url_intent = new Intent (Intent.ACTION_VIEW,Uri.parse(url)); 
      url_intent.addCategory(Intent.CATEGORY_BROWSABLE); 
      startActivity(url_intent); 
      return false; 
     }else{ 
       view.loadUrl(url); 
       return true; 
     } 
} 

感謝&問候,

+0

你是否試圖在桌面瀏覽器中打開該URL? –

+0

是的,我試過了,它可以在桌面瀏覽器中運行 – VijayRaj

+0

看看[這裏](http://stackoverflow.com/a/5514668/1777090)。這可能有幫助。 –

回答

0

也許舉辦一個PHP文件,用頭?

<?php 
header("Location: sheet://link_to_your_file.extention"); 
?> 
+0

上鍊接到文件有http協議,但它在內部使用sheet://協議 – VijayRaj

0

您是否看到shouldOverrideUrlLoading來電:// URL?代碼的這部分看起來是正確的(假設您的設備上安裝了可以處理sheet:// BROWSABLE意圖的應用程序)。或者,您的意思是從您的應用程序啓動的應用程序無法加載工作表:// URL?正在啓動什麼應用程序來響應意圖?

您遇到的一個錯誤是在URL中爲:而不是時致電loadUrl。在這種情況下,請只需return true。 URL加載已在進行中,不需要再次啓動它。這樣做實際上造成了一個循環。

+0

我沒有任何其他應用程序安裝在我的設備..我試圖加載工作表://URL在我的應用程序..我從代碼中刪除**意圖**部分,只是返回false爲表://url,但我得到「協議不支持」 – VijayRaj

+0

那就是預期的。如果設備上沒有任何東西來處理您的定製方案,那麼它如何得到支持?您希望爲表單網址加載什麼內容?你是否想使用shouldInterceptRequest API來代替它,它允許你提供你自己的InputStream來響應請求? – ksasq

+0

我得到了這個工作:)我想知道如何獲得一個返回值,當我在webview中加載一個JavaScript函數? – VijayRaj

0

你必須在AndroidManifest.xml中註冊一個符合該協議的意圖過濾器的活動