我正在尝试在Android WebView中加载这个流行的播客:
这就是我渲染它的方式:
public class PodcastsActivity extends BaseActivity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
WebView webview = new WebView(this);
webview.getSettings().setAppCacheEnabled(false);
webview.getSettings().setJavaScriptEnabled(true);
webview.setInitialScale(100);
webview.setWebViewClient(new WebViewClient());
setContentView(webview);
webview.loadUrl("http://www.stitcher.com/podcast/entrepreneuronfirecom/entrepreneur-on-fire-tim-ferriss-other-incredible-entrepreneurs");
在我的清单中,我的活动定义如下:
<activity
android:name="PodcastsActivity"
android:label="Podcasts"
android:hardwareAccelerated="true"/>
但它呈现如下:
是否需要设置额外的设置?或者我缺少的东西?
谢谢!
答案 0 :(得分:5)
我希望你看过其他答案。您可以尝试的一些事情是:
1)从webview not loading correctly in application问题开始,您可以在加载URL之前尝试启用java脚本:
webview.setInitialScale(1);
webview.getSettings().setAppCacheEnabled(false);
webview.getSettings().setJavaScriptEnabled(true);
2)根据Android webview not rendering html content correctly问题,如果您的目标高于2.3.3,请尝试在清单文件中添加此内容。
android:hardwareAccelerated="true"
<强>更新强>
3)同时检查您是否manifest
作为<manifest>
标记的直接子项获得了以下权限:
<uses-permission android:name="android.permission.INTERNET" />
Unable to load webpage using WebView in Android
4)您可以按照shouldOverrideUrlLoading() {/ 3>}的方式尝试here方法
更新2 :
正如您所说,它在您的浏览器上正确显示,如果在应用程序中单击某个链接时,还可以使用上述方法,它会打开默认浏览器。我不确定你是否想要这个,但这是一种可能性。如下:
webview.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if (url != null) {
view.getContext().startActivity(
new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
} else {
return false;
}
}
});
webview.loadUrl("http://www.stitcher.com/podcast/entrepreneuronfirecom/entrepreneur-on-fire-tim-ferriss-other-incredible-entrepreneurs");
来源:WebView link click open default browser
希望这会有所帮助。