Webview是没有显示的页面
昨天我开始一个项目,为我的父亲有他的所有网络电台的使用嵌入代码radionomy提供的应用程序。Webview是没有显示的页面
我觉得代码都已经形成,但是当我执行应用程序,该应用程序只显示一个空白页。
主要业务代码:
import android.annotation.TargetApi;
import android.os.Build;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebResourceRequest;
import android.webkit.WebView;
import android.webkit.WebViewClient;
public class CalsicaActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calsica);
WebView clasica = new WebView(this);
clasica.getSettings().setJavaScriptEnabled(true);
setContentView(clasica);
clasica.setWebViewClient(new WebViewClient() {
@Override
@TargetApi(Build.VERSION_CODES.N)
public boolean shouldOverrideUrlLoading(WebView clasicav, WebResourceRequest request) {
clasicav.loadUrl("file:///android_asset/index.html");
return false;
}
@Override
@SuppressWarnings("deprecation")
public boolean shouldOverrideUrlLoading(WebView clasicav, String url) {
clasicav.loadUrl("file:///android_asset/index.html");
return false;
}
});
//clasica.loadUrl("file:///android_asset/index.html");
}
}
HTML代码:
<html>
<head><script>
(function (win, doc, script, source, objectName) {
(win.RadionomyPlayerObject = win.RadionomyPlayerObject || []).push(objectName);
win[objectName] = win[objectName] || function (k, v) {
(win[objectName].parameters = win[objectName].parameters || { src: source, version: '1.1' })[k] = v;
};
var js, rjs = doc.getElementsByTagName(script)[0];
js = doc.createElement(script);
js.async = 1;
js.src = source;
rjs.parentNode.insertBefore(js, rjs);
}(window, document, 'script', 'https://www.radionomy.com/js/radionomy.player.js', 'radplayer'));
radplayer('url', 'bravo-clasic');
radplayer('type', 'medium');
radplayer('autoplay', '1');
radplayer('volume', '50');
radplayer('color1', '#000000');
radplayer('color2', '#ffffff');
</script></head>
<body>
<div class="radionomy-player"></div>
</body>
</html>
我已经在Android清单添加<uses-permission android:name="android.permission.INTERNET"/>
。
我不知道什么我可能做错了,我会很感激一些帮助的想法。
尝试在第一负荷网址到web view
执行setContentView
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView clasica = new WebView(this);
clasica.getSettings().setJavaScriptEnabled(true);
clasica.loadUrl("file:///android_asset/index.html");
setContentView(clasica);
//clasica.loadUrl("file:///android_asset/index.html");
}
现在它弹出了网络:ERR_TOO_MANY_REDIRECTS – InsaneDarkness
检查更新ans @InsaneDarkness –
和以前一样:c – InsaneDarkness
好下面的代码会被调用时才加载某些URL (通过使用loadURL()方法)。请检查它应该覆盖的方法签名。
通过设置的WebView客户端你只是指出,应在加载时发生的事情。但是你试图发生的事情应该首先开始。我有什么意义吗?
clasica.setWebViewClient(new WebViewClient() {
@Override
@TargetApi(Build.VERSION_CODES.N)
public boolean shouldOverrideUrlLoading(WebView clasicav, WebResourceRequest request) {
clasicav.loadUrl("file:///android_asset/index.html");
return false;
}
@Override
@SuppressWarnings("deprecation")
public boolean shouldOverrideUrlLoading(WebView clasicav, String url) {
clasicav.loadUrl("file:///android_asset/index.html");
return false;
}
});
解决方案:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// setContentView(R.layout.activity_calsica);
WebView clasica = new WebView(this);
clasica.getSettings().setJavaScriptEnabled(true);
// remove below code you dont need this
/* clasica.setWebViewClient(new WebViewClient() {
@Override
@TargetApi(Build.VERSION_CODES.N)
public boolean shouldOverrideUrlLoading(WebView clasicav, WebResourceRequest request) {
clasicav.loadUrl("file:///android_asset/index.html");
return false;
}
@Override
@SuppressWarnings("deprecation")
public boolean shouldOverrideUrlLoading(WebView clasicav, String url) {
clasicav.loadUrl("file:///android_asset/index.html");
return false;
}
});*/
// you need this line
clasica.loadUrl("file:///android_asset/index.html");
setContentView(clasica);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView clasica = new WebView(this);
clasica.loadUrl("file:///android_asset/index.html");
setContentView(clasica);
}
加载显示网:ERR_TOO_MANY_REDIRECTS – InsaneDarkness
试试这个代码
public class CalsicaActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calsica);
WebView clasica = new WebView(this);
clasica.getSettings().setJavaScriptEnabled(true);
clasica.setWebViewClient(new WebViewClient() {
@Override
@TargetApi(Build.VERSION_CODES.N)
public boolean shouldOverrideUrlLoading(WebView clasicav, WebResourceRequest request) {
clasicav.loadUrl("file:///android_asset/index/" + page + ".html");
return false;
}
@Override
@SuppressWarnings("deprecation")
public boolean shouldOverrideUrlLoading(WebView clasicav, String url) {
clasicav.loadUrl("file:///android_asset/index/" + page + ".html");
return false;
}
});
//clasica.loadUrl("file:///android_asset/index.html");
}
}
我希望能帮助你
你加** ** INTERNET清单文件 –
权限@NileshRathod Yup – InsaneDarkness
为什么你正在做** **的setContentView两次 –