昨天我为父亲开始了一个项目,使用radionomy提供的嵌入代码将所有网络电台放在应用程序上。
我认为代码格式正确但是当我执行应用程序时,应用程序只显示一个空白页面。
主要活动代码:
android:layout_weight="1"
Html代码:
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");
}
}
我已经在android清单上添加了<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>
。
我不知道自己做错了什么,我会感激一些帮助。
答案 0 :(得分:0)
尝试将此第一个加载网址添加到执行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");
}
答案 1 :(得分:0)
只有在加载某些网址 (通过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);
}
答案 2 :(得分:0)
join_date