由于近期有个需求需要在webview加载完网页上的视频标签(html5 video),经过一番查资料和尝试之后,终于实现了,具体实现如下:自定义一个xml 里面包含Webview组件,自定义WebViewClient,实现onPageFinished方法,回调javascript,实现播放功能
package com.zr.webviewtest;import android.app.Activity;import android.os.Bundle;import android.util.Log;import android.view.View;import android.webkit.ConsoleMessage;import android.webkit.WebChromeClient;import android.webkit.WebResourceResponse;import android.webkit.WebSettings;import android.webkit.WebView;import android.webkit.WebViewClient;import android.widget.FrameLayout;import com.samsung.zr.webviewtest.R;public class MainActivity extends Activity {private FrameLayout frameLayout = null;private WebView webView = null;private WebChromeClient chromeClient = null;private View myView = null;private WebChromeClient.CustomViewCallback myCallBack = null;public MainActivity() {}@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);frameLayout = (FrameLayout)findViewById(R.id.framelayout);webView = (WebView)findViewById(R.id.webview);webView.getSettings().setJavaScriptEnabled(true);webView.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);webView.setWebViewClient(new MyWebviewCient());chromeClient = new MyChromeClient();webView.setWebChromeClient(chromeClient);webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE);webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NARROW_COLUMNS);webView.setHorizontalScrollBarEnabled(false);webView.setVerticalScrollBarEnabled(false);final String USER_AGENT_STRING = webView.getSettings().getUserAgentString() + " Rong/2.0";webView.getSettings().setUserAgentString( USER_AGENT_STRING );webView.getSettings().setSupportZoom(false);webView.getSettings().setPluginState(WebSettings.PluginState.ON);webView.getSettings().setLoadWithOverviewMode(true);webView.loadUrl("file:///android_asset/index.html");if(savedInstanceState != null){webView.restoreState(savedInstanceState);}}@Overridepublic void onBackPressed() {if(myView == null){super.onBackPressed();}else{chromeClient.onHideCustomView();}}@Overrideprotected void onSaveInstanceState(Bundle outState) {// TODO Auto-generated method stubwebView.saveState(outState);}public void addJavaScriptMap(Object obj, String objName){webView.addJavascriptInterface(obj, objName);}public class MyWebviewCient extends WebViewClient{@Overridepublic WebResourceResponse shouldInterceptRequest(WebView view,String url) {WebResourceResponse response = null;response = super.shouldInterceptRequest(view, url);return response;}@Overridepublic void onPageFinished(WebView view, String url) {// TODO Auto-generated method stubsuper.onPageFinished(view, url);Log.d("dream", "***on page finished");webView.loadUrl("javascript:myFunction()"); }}public class MyChromeClient extends WebChromeClient{@Overridepublic void onShowCustomView(View view, CustomViewCallback callback) {if(myView != null){callback.onCustomViewHidden();return;}frameLayout.removeView(webView);frameLayout.addView(view);myView = view;myCallBack = callback;}@Overridepublic void onHideCustomView() {if(myView == null){return;}frameLayout.removeView(myView);myView = null;frameLayout.addView(webView);myCallBack.onCustomViewHidden();}@Overridepublic boolean onConsoleMessage(ConsoleMessage consoleMessage) {// TODO Auto-generated method stubLog.d("ZR", consoleMessage.message()+" at "+consoleMessage.sourceId()+":"+consoleMessage.lineNumber());return super.onConsoleMessage(consoleMessage);}}}


XML布局文件:

    


网页文件:

            FamilyAlbum                                  

A Paragraph.


源码下载地址: http://download.csdn.net/detail/xiangyong2008/7473159 


更多相关文章

  1. android:configChanges="keyboardHidden|orientation
  2. 继承Application实现Android数据共享
  3. linux挂载android 根文件系统的过程
  4. 编译Coco2d-x android 程序出现make: *** No rule to make targe
  5. android linux 基础知识总结(1)
  6. Android(安卓)OpenCV使用2_使用OpenCV并进行人脸检测
  7. Android(安卓)– 在Gradle中更改APK文件名
  8. android 中解析XML的方法
  9. Android(安卓)大文件上传时,处理上传进度问题

随机推荐

  1. Android中的Parcelable接口
  2. Android弹窗
  3. Android版本对照
  4. 组件居中显示 安卓
  5. Eclipse 运行Android程序在虚拟机中,出现
  6. android源代码下载及编译
  7. Android图文布局【整理】
  8. Android(安卓)开源项目分类汇总
  9. Android WebView example
  10. android AutoCompleteTextView