2016-05-11 14 views
0

webViewを使用してAndroidアプリにURLを表示しようとしています。Android WebView何も表示されていません

私はこのURL -

http://stackoverflow.com

にしようとした場合、私はthis- enter image description here

を取得しています。しかし、私はthis-

https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Fplaylists%2F8111706%3Fsecret_token%3Ds-3aK27&color=e2ef3a&auto_play=false&show_artwork=falseにしようとしています場合には

私は IS-

活動を行っている何this-

enter image description here

を取得しています -

package com.appnucleus.abrarjahin.hello8920; 

import android.content.Context; 
import android.net.ConnectivityManager; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.webkit.WebView; 
import android.widget.Toast; 

public class ActivityMain extends AppCompatActivity 
{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     if (isNetworkAvailable())  //check if internet available or not 
     { 
      Toast.makeText(
           ActivityMain.this, 
           "Internet Connected", 
           Toast.LENGTH_LONG 
          ).show(); 
      WebView webview = (WebView)findViewById(R.id.webView); 
      webview.getSettings().setJavaScriptEnabled(true); 
      webview.loadUrl(getString(R.string.sound_cloud_url)); 
     } 
     else //Not connected 
     { 
      Toast.makeText(
        ActivityMain.this, 
        "Internet Disconnected", 
        Toast.LENGTH_LONG 
      ).show(); 
     } 
    } 

    //<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    //<uses-permission android:name="android.permission.INTERNET"/> 
    public boolean isNetworkAvailable() 
    { 
     final ConnectivityManager connectivityManager = ((ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE)); 
     return connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo().isConnected(); 
    } 
} 

レイアウト -

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.appnucleus.abrarjahin.hello8920.ActivityMain"> 

    <WebView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/webView" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentEnd="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" /> 
</RelativeLayout> 

のstrings.xml -

<resources> 
    <string name="app_name" translatable="false">Hello 8920</string> 
    <string name="sound_cloud_url">https://w.soundcloud.com/player/?url=http%3A%2F%2Fapi.soundcloud.com%2Fplaylists%2F8111706%3Fsecret_token%3Ds-3aK27&amp;color=e2ef3a&amp;auto_play=false&amp;show_artwork=false</string> 
    <string name="test_url">http://stackoverflow.com/</string> 
</resources> 

のAndroidManifest.xml -

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.appnucleus.abrarjahin.hello8920"> 

    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".ActivityMain"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

私は空白のページを取得しています、なぜ誰も助けてくださいことはできますか?

+0

あなたはmatch_parentするのWebViewの設定幅と高さをしようとすることができますか? – Pr38y

+0

どのデバイスをお使いですか?私はNexusで同様の問題に直面しています。デバイス固有のものでもよい。 – Tauqir

+0

ブラウザでURLを開いていますか? –

答えて

1

は、このコードを試してください: -

public class ActivityMain extends AppCompatActivity 
{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     if (isNetworkAvailable())  //check if internet available or not 
     { 
      Toast.makeText(
           ActivityMain.this, 
           "Internet Connected", 
           Toast.LENGTH_LONG 
          ).show(); 
      WebView webview = (WebView)findViewById(R.id.webView); 
webView.setWebViewClient(new myWebClient()); 
      webview.getSettings().setJavaScriptEnabled(true); 
      webview.loadUrl(getString(R.string.sound_cloud_url)); 
     } 
     else //Not connected 
     { 
      Toast.makeText(
        ActivityMain.this, 
        "Internet Disconnected", 
        Toast.LENGTH_LONG 
      ).show(); 
     } 
    } 

    //<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    //<uses-permission android:name="android.permission.INTERNET"/> 
    public boolean isNetworkAvailable() 
    { 
     final ConnectivityManager connectivityManager = ((ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE)); 
     return connectivityManager.getActiveNetworkInfo() != null && connectivityManager.getActiveNetworkInfo().isConnected(); 
    } 

public class myWebClient extends WebViewClient 
     { 
      @Override 
      public void onPageStarted(WebView view, String url, Bitmap favicon) { 
       // TODO Auto-generated method stub 
       super.onPageStarted(view, url, favicon); 
      } 

      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       // TODO Auto-generated method stub 
       view.loadUrl(url); 
       return true; 
      } 
     } 
} 
2

は、この5月には、あなたを助け

webView = (WebView) findViewById(R.id.webView); 
    **webView.setWebViewClient(new WebViewClient());** 
    String url = "https://www.google.co.in"; 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.loadUrl(url); 

、これを試してみてください。

+0

WebViewClientの新しいインスタンスが必要なのはなぜですか? –

-2
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.google.com")); 
startActivity(browserIntent); 
1

WebViewのWebViewClientを追加し、あなたが取得しているかのエラーを確認してください。

設定方法は?

webView.setWebViewClient(new WebViewClient() { 

      @Override 
      public boolean shouldOverrideUrlLoading(WebView view, String url) { 
       return super.shouldOverrideUrlLoading(view, url); 
      } 

      @Override 
      public void onPageStarted(WebView view, String url, Bitmap favicon) { 
       super.onPageStarted(view, url, favicon); 
      } 

      @Override 
      public void onPageFinished(WebView view, String url) { 
       super.onPageFinished(view, url); 
      } 

      @Override 
      public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
       super.onReceivedError(view, errorCode, description, failingUrl); 
       Log.e("Error", description); 
      } 

    }); 

これは意味をなさないでしょう。

+0

私のコードをよく読んでください。私はすでにそれをやっています。リンクを除くすべてのリンクが機能しています –

関連する問題