1、Java代码
public class MainActivity extends Activity { private static final String TAG = MainActivity.class.getName(); private static final int PICK_VIDEO_CODE = 1000; private WebView webView = null; private Handler handler = new Handler(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); webView = (WebView) findViewById(R.id.webView1); WebSettings webSettings = webView.getSettings(); // 启用JavaScript webSettings.setJavaScriptEnabled(true); //加载本地HTML文件,路径位于/assets/html/index.html webView.loadUrl("file:///android_asset/html/index.html"); // 添加JavaScript接口 webView.addJavascriptInterface(new Object() { // 定义选择视频文件接口 @JavascriptInterface public void pickVideoFile() { handler.post(new Runnable() { public void run() { Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Video.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, PICK_VIDEO_CODE); } }); } }, "videoAPI"); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == PICK_VIDEO_CODE) { if (resultCode == RESULT_OK) { // 返回已选择的视频文件路径 String selectedVideoFilePath = data.getData().getPath(); Log.i(TAG, selectedVideoFilePath); } } } }
2、HTML+JavaScript代码
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-touch-fullscreen" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> <link rel="stylesheet" type="text/css" href="style/skins.css" /> <title>JS接口测试</title> <style type="text/css"> body{ font-size:20px; } fieldset { margin-bottom: 10px; } .list li { line-height: 2em; } </style> </head> <body> <fieldset> <legend>视频调用接口示例</legend> <div class="list"> <ol> <li><a href="javascript:videoAPI.pickVideoFile()">测试选择视频文件</a></li> </ol> </div> </fieldset> </body> </html>