2017-09-16 110 views
0

昨天我开始一个项目,为我的父亲有他的所有网络电台的使用嵌入代码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"/>

我不知道什么我可能做错了,我会很感激一些帮助的想法。

+0

你加** ** INTERNET清单文件 –

+0

权限@NileshRathod Yup – InsaneDarkness

+0

为什么你正在做** **的setContentView两次 –

回答

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"); 
    } 
+0

现在它弹出了网络:ERR_TOO_MANY_REDIRECTS – InsaneDarkness

+0

检查更新ans @InsaneDarkness –

+0

和以前一样:c – InsaneDarkness

0

好下面的代码会被调用时才加载某些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); 
} 
+0

我不是真正了解你xD – InsaneDarkness

+0

检查更新的ans。 @InsaneDarkness – Sush

+0

现在它只是一个空白页 – InsaneDarkness

0
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    WebView clasica = new WebView(this); 
    clasica.loadUrl("file:///android_asset/index.html"); 
    setContentView(clasica); 
} 
+0

加载显示网:ERR_TOO_MANY_REDIRECTS – InsaneDarkness

0

试试这个代码

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

我希望能帮助你

+0

怎么样的“页”变种? – InsaneDarkness

+0

对不起,我在错误输入,删除它,然后尝试代码 –

+0

随着concats? – InsaneDarkness