我搜索的范围很广,似乎无法找到确切的答案,甚至无法关闭。
我有一个WebView打开一个网页(JQuery Mobile),一切都很好。
在该页面中,有mp3和mp4文件的静态链接。 这个想法是,当点击时 - 设备将打开默认声音或电影应用程序来播放每个。这在使用Android浏览器时没有问题。
当我在WebView中打开并单击相同的链接时 - 没有任何反应。 没有任何东西可以打开或播放。
我将getSettings设置为尽可能广泛。
**web.getSettings().setJavaScriptEnabled(true);
web.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
web.getSettings().setPluginsEnabled(true);
web.getSettings().setSupportMultipleWindows(true);
web.getSettings().setSupportZoom(true);
web.getSettings().setBuiltInZoomControls(true);
web.getSettings().setAllowFileAccess(true);
web.setVerticalScrollBarEnabled(false);
web.setHorizontalScrollBarEnabled(false);**
我还要注意,我认为“shouldOverrideUrlLoading”仅适用于WebView中加载的初始URL。这是WebView中的一个链接 - 所以似乎不起作用。
我曾尝试过。
有关如何使用户能够单击WebView中的链接并以浏览器的身份打开关联应用程序的任何想法?
非常赞赏!
/ R
答案 0 :(得分:8)
好的 - 在搜索了不同的主题之后找到了答案。
答案在于截取链接:
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url.endsWith(".mp3")) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(url), "audio/*");
view.getContext().startActivity(intent);
return true;
} else if (url.endsWith(".mp4") || url.endsWith(".3gp")) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(url), "video/*");
view.getContext().startActivity(intent);
return true;
} else {
return super.shouldOverrideUrlLoading(view, url);
}
}
答案 1 :(得分:0)
你将使用一个界面,用一个VideoView加载一个新的Activity来执行媒体链接,等等等等......但我认为这是一个简单的方法......
WebView WebContent = (WebView)findViewById(R.id.myWebView);
String htmlLink= "<a href=\"http://prueba.agenciareforma.com/webs/elnorte/blackberry/mp3/uno.mp3\">Open Mp3 here!</a>";
WebContent.loadDataWithBaseURL(null, htmlLink, "text/html", "utf-8", null);
WebSettings webSettings = WebContent.getSettings();
webSettings.setSavePassword(false);
webSettings.setSaveFormData(false);
webSettings.setJavaScriptEnabled(true);
webSettings.setSupportZoom(true);
<强> UPDATE :: 强> 改变::
<a href="planetofrock.com/samples/lballad.mp3">Click Here</a>
要::
<a href="http://planetofrock.com/samples/lballad.mp3">Click Here</a>
答案 2 :(得分:0)
我有一个类似的页面正在加载一个URL,该URL包含一个播放音频的链接。它第一次工作正常,但第二次没有播放。 webview的代码是:
WebSettings webSettings = this.webview.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setDomStorageEnabled(true);
this.webview.setWebViewClient(new WebViewClient());
this.webview.setWebChromeClient(new WebChromeClient());
webSettings.setLoadWithOverviewMode(true);
webSettings.setUseWideViewPort(true);
在我的页面上我有像
这样的音频标签<audio id="audiotag1" style="display:none" preload="auto" hidden='true' autostart='false'>
<source src="../../Content/sound/NewOrder.wav" type="audio/x-wav">
</audio>
我通过调用它的方法
来通过JQuery播放它$('#audiotag1').play();
希望它对你有用。