2016-06-16 3 views
0

내가 뭘 잘못하고있는거야? lib를 포함시켜야합니까?Android Studio (WebView)에서 뉴스 읽기 앱 만들기. 하지만 내가 선택한 기사에서 비디오를 클릭하면 재생되지 않습니다

Youtube API를 추가하려고했지만 도움이되지 않았습니다.

편집 # 1 : 이것은 오디오 재생 작동 일부 인스턴스에서 웹보기 코드

입니다 대신 비디오는 비디오를로드하려고 단지 회전하는 원형 애니메이션입니다.

package com.PAKGN.Mizzy; 

import android.app.Activity; 
import android.os.Bundle; 
import android.support.v7.app.ActionBarActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.KeyEvent; 
import android.view.View; 
import android.webkit.WebChromeClient; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 
import android.widget.Toast; 
import android.webkit.WebSettings; 

private WebView webView1; 
private Toolbar toolbar; 
private String title; 
private String url; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_webview); 
    // this.getWindow().requestFeature(Window.FEATURE_PROGRESS); 

    WebView myWebView = (WebView) findViewById(R.id.webView1); 
    WebSettings webSettings = myWebView.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 

    toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 


    title = getIntent().getExtras().getString("title"); 
    url = getIntent().getExtras().getString("url"); 


    getSupportActionBar().setTitle(title); 

    if (savedInstanceState != null) { 
     ((WebView) findViewById(R.id.webView1)).restoreState(savedInstanceState); 
    } else { 

     webView1 = (WebView) findViewById(R.id.webView1); 

     webView1.getSettings().setJavaScriptEnabled(true); 

     webView1.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 


     final Activity activity = this; 


     webView1.setWebViewClient(new WebViewClient() 

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

     webView1.setWebChromeClient(new WebChromeClient() { 
      public void onProgressChanged(WebView view, int progress) { 
       // Activities and WebViews measure progress with different scales. 
       // The progress meter will automatically disappear when we reach 100% 
       activity.setProgress(progress * 1000); 
      } 
     }); 

     webView1.setWebViewClient(new WebViewClient() { 
      public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { 
       Toast.makeText(activity, "Oh no! " + description, Toast.LENGTH_SHORT).show(); 
      } 
     }); 



     runOnUiThread(new Runnable() { 
      @Override 
      public void run() { 
       // Code for WebView goes here 
       webView1.loadUrl(url); 
      } 
     }); 



    } 


} 



@Override 
protected void onSaveInstanceState(Bundle outState){ 
    ((WebView) findViewById(R.id.webView1)).saveState(outState); 
} 





@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    // Check if the key event was the Back button and if there's history 
    if ((keyCode == KeyEvent.KEYCODE_BACK) && webView1.canGoBack()) { 
     webView1.goBack(); 
     return true; 
    } 
    // If it wasn't the Back key or there's no web page history, bubble up to the default 
    // system behavior (probably exit the activity) 
    return super.onKeyDown(keyCode, event); 
} 


@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     // Respond to the action bar's Up/Home button 
     case android.R.id.home: 
      NavUtils.navigateUpFromSameTask(this); 
      return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

.

+0

여기에 무엇을 추가 했습니까? –

답변

2

javaScript를 활성화해야합니다. WebView myWebView = (WebView) findViewById(R.id.webview); WebSettings webSettings = myWebView.getSettings(); webSettings.setJavaScriptEnabled(true);

편집 : WebClient를 Webview 용으로 두 번 설정합니다. 당신은 정말 여기 작업을 수행하지 않는

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

는 원래 구현에서 다른 이잖아 당신은 그래서이 삭제 다른 웹 클라이언트와 웹보기를 대체하기 때문에이 코드도 실행되고 있지 않습니다.

` runOnUiThread(new Runnable() { 
     @Override 
     public void run() { 
      // Code for WebView goes here 
      webView1.loadUrl(url); 
     } 
    }); 

`

은 webview1.loadUrl (URL)를 runOnUiThread에 대한 필요를 입력, 이것도 삭제합니다.

` webView1.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 

이 줄도 문제를 일으키는 삭제하십시오. '

+0

어디에서 붙여 넣을까요? –

+0

조각 onCreateView 또는 Activity의 onCreate에서 – CodeCody

+0

오류 : (32,9) 오류 : 기호 클래스 WebSettings를 찾을 수 없습니다. –