Android 在webview中加载自定义url

Android 在webview中加载自定义url,android,android-webview,webviewclient,Android,Android Webview,Webviewclient,在我的应用程序中,我正在webview中加载http url。此url已正确加载,但有一些内部url与协议表一起加载://。加载此url时,我发现错误协议不受支持。有人能帮我解决这个问题吗?如何使用协议表加载url:// PS:我正在使用shouldOverrideUrlLoading方法加载url 这是我正在使用的代码 public boolean shouldOverrideUrlLoading(WebView view, String url) { if(url.cont

在我的应用程序中,我正在webview中加载http url。此url已正确加载,但有一些内部url与协议表一起加载://。加载此url时,我发现错误协议不受支持。有人能帮我解决这个问题吗?如何使用协议表加载url://

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; 
        }
 }

感谢和问候,

是否可以承载一个带有标题的PHP文件

<?php
header("Location: sheet://link_to_your_file.extention");
?>
您是否看到对shouldOverrideUrlLoading的调用为您的sheet://URL输入?假设您的设备上安装了能够处理可浏览意图的应用程序,那么这部分代码看起来是正确的。或者,您的意思是从您的应用程序启动的应用程序无法加载sheet://URL?正在启动什么应用程序来响应此意图


您犯的一个错误是当sheet://不在URL中时调用loadUrl。在这种情况下,请返回true。URL加载已在进行中,无需再次启动。这样做实际上会创建一个循环。

您必须使用与AndroidManifest.xml中的协议相匹配的意向筛选器注册活动。

您是否尝试在桌面浏览器中打开该url?是的,我尝试了,它在桌面浏览器中工作。请查看。这可能会有帮助。你能共享一个这样的url吗?@MysticMagic我已经看到了那篇文章,但它仍然没有工作链接到文件有http协议,但它内部使用sheet://protocol我的设备中没有安装任何其他应用程序。。我正在尝试在我的应用程序中加载sheet://URL..我从代码中删除了意图部分,只是为sheet://URL返回了false,但我得到的协议不受支持,这是预期的。如果设备上没有任何东西可以处理您的自定义方案,那么如何支持它?您希望为工作表URL加载什么?你想改用shouldInterceptRequest API吗?它允许你提供自己的InputStream来响应请求?我成功了:我想知道在webview中加载javascript函数时如何获得返回值?很高兴听到它成功了,最终的解决方案是什么?对于JavaScript,没有一种方法可以同步执行。在Android 4.4上,您可以使用WebView.evaluateJavascript并传入一个将随结果运行的回调,在4.4之前,您将需要loadUrljavascript:和addJavaScriptInterface的组合来接收结果。工作表协议url不是要加载的..我试图加载它,因此出现了错误..关于javascript,如果我使用addJavaScriptInterface,我必须更改js文件中的代码……因为我们在ios中使用相同的js代码,有没有其他方法获得响应?