1茫聙聛忙聳聡忙聹卢猫碌聞忙潞聬莽職聞盲赂聥猫陆陆忙聳鹿忙鲁聲茂录職
盲赂聙猫聢卢忙聝聟氓聠碌盲赂聥茂录聦莽陆聭茅隆碌盲赂聤忙聳聡忙聹卢氓聠聟氓庐鹿氓聫炉盲禄楼莽聸麓忙聨楼茅聙聣忙聥漏氓陇聧氓聢露盲赂聥忙聺楼茂录聦忙聢聳猫聙聟莽聸麓忙聨楼盲驴聺氓颅聵盲赂潞莽陆聭茅隆碌忙聳聡盲禄露忙聢聳忙聳聡忙聹卢忙聳聡盲禄露茫聙聜盲陆聠忙聵炉茂录聦盲鹿聼忙聹聣盲赂聙盲潞聸莽陆聭茅隆碌盲赂聤莽職聞忙聳聡忙聹卢氓聠聟氓庐鹿盲赂聧猫聝陆莽聸麓忙聨楼猫垄芦茅聙聣忙聥漏氓聮聦氓陇聧氓聢露茂录聦盲鹿聼盲赂聧猫聝陆猫垄芦盲驴聺氓颅聵盲赂潞莽陆聭茅隆碌忙聳聡盲禄露忙聢聳忙聳聡忙聹卢忙聳聡盲禄露茫聙聜

忙聹聣盲潞聸莽陆聭茅隆碌盲陆聹盲潞聠氓聤聽氓炉聠氓陇聞莽聬聠茂录聦氓聫鲁茅聰庐盲赂聧猫碌路盲陆聹莽聰篓茫聙聜猫驴聶忙聴露氓聫炉莽聜鹿氓聡禄莽陆聭茅隆碌猫聫聹氓聧聲忙聽聫盲赂聤芒聙聹忙聼楼莽聹聥芒聙聺猫聫聹氓聧聲盲赂颅莽職聞芒聙聹忙潞聬忙聳聡盲禄露芒聙聺茅聙聣茅隆鹿茂录聦氓掳聠忙聲麓盲赂陋莽陆聭茅隆碌莽職聞HTML忙潞聬忙聳聡盲禄露盲驴聺氓颅聵盲赂聥忙聺楼氓聬聨茂录聦氓聠聧盲禄聨忙潞聬盲禄拢莽聽聛盲赂颅氓炉禄忙聣戮盲陆聽忙聣聙茅聹聙猫娄聛莽職聞忙聳聡忙聹卢盲驴隆忙聛炉茫聙聜
2茫聙聛莽陆聭茅隆碌忙聳聡忙聹卢莽麓聽忙聺聬莽職聞盲赂聥猫陆陆氓聮聦氓陇聞莽聬聠茂录職
氓聹篓莽陆聭茅隆碌莽職聞莽漏潞莽聶陆氓陇聞莽聰篓茅录聽忙聽聡氓聫鲁氓聡禄茂录聦氓聹篓氓驴芦忙聧路猫聫聹氓聧聲盲赂颅茅聙聣忙聥漏芒聙聹忙聼楼莽聹聥忙潞聬忙聳聡盲禄露芒聙聺茂录聦氓录鹿氓聡潞莽陆聭茅隆碌莽職聞忙潞聬忙聳聡盲禄露莽录聳猫戮聭莽陋聴氓聫拢茫聙聜猫炉楼莽陋聴氓聫拢盲赂聙猫聢卢忙聵炉猫庐掳盲潞聥忙聹卢莽陋聴氓聫拢茫聙聜
忙聼楼莽聹聥猫炉楼忙聳聡盲禄露莽職聞氓聠聟氓庐鹿茂录聦氓掳聠忙颅拢忙聳聡氓聣聧莽職聞忙聣聙忙聹聣氓聠聟氓庐鹿氓聢聽茅聶陇茂录聦莽聞露氓聬聨盲驴聺氓颅聵盲赂潞忙聳聡忙聹卢忙聳聡盲禄露茫聙聜
氓掳聠盲驴聺氓颅聵莽職聞忙聳聡盲禄露莽職聞忙聣漏氓卤聲氓聬聧.txt忙聰鹿盲赂潞莽陆聭茅隆碌忙聳聡盲禄露莽職聞忙聣漏氓卤聲氓聬聧.htm茫聙聜
氓聠聧忙卢隆忙聣聯氓录聙猫炉楼忙聳聡盲禄露氓聬聨茂录聦忙聳聡忙聹卢氓聠聟氓庐鹿氓掳卤氓聫炉盲禄楼猫垄芦氓陇聧氓聢露盲赂聥忙聺楼茫聙聜
忙聸麓氓陇職氓聟鲁盲潞聨忙聙聨盲鹿聢忙聽路盲赂聥猫陆陆莽陆聭茅隆碌盲赂聤莽職聞忙聳聡盲禄露茂录聦猫驴聸氓聟楼茂录職https://www.abcgonglue.com/ask/0a6ac11616092617.html?zd忙聼楼莽聹聥忙聸麓氓陇職氓聠聟氓庐鹿
WebView忙聨搂氓聢露猫掳聝莽聰篓莽聸赂氓潞聰莽職聞WEB茅隆碌茅聺垄猫驴聸猫隆聦氓卤聲莽陇潞茫聙聜氓陆聯莽垄掳氓聢掳茅隆碌茅聺垄忙聹聣盲赂聥猫陆陆茅聯戮忙聨楼莽職聞忙聴露氓聙聶茂录聦莽聜鹿氓聡禄盲赂聤氓聨禄忙聵炉盲赂聙莽聜鹿氓聫聧氓潞聰茅聝陆忙虏隆忙聹聣莽職聞茫聙聜氓聨聼忙聺楼忙聵炉氓聸聽盲赂潞WebView茅禄聵猫庐陇忙虏隆忙聹聣氓录聙氓聬炉忙聳聡盲禄露盲赂聥猫陆陆莽職聞氓聤聼猫聝陆茂录聦氓娄聜忙聻聹猫娄聛氓庐聻莽聨掳忙聳聡盲禄露盲赂聥猫陆陆莽職聞氓聤聼猫聝陆茂录聦茅聹聙猫娄聛猫庐戮莽陆庐WebView莽職聞DownloadListener茂录聦茅聙職猫驴聡氓庐聻莽聨掳猫聡陋氓路卤莽職聞DownloadListener忙聺楼氓庐聻莽聨掳忙聳聡盲禄露莽職聞盲赂聥猫陆陆茫聙聜氓聟路盲陆聯忙聯聧盲陆聹氓娄聜盲赂聥茂录職
1茫聙聛猫庐戮莽陆庐WebView莽職聞DownloadListener茂录職
webView.setDownloadListener(new MyWebViewDownLoadListener());
2茫聙聛氓庐聻莽聨掳MyWebViewDownLoadListener猫驴聶盲赂陋莽卤禄茂录聦氓聟路盲陆聯氓聫炉盲禄楼氓娄聜盲赂聥猫驴聶忙聽路茂录職
Java盲禄拢莽聽聛
private class MyWebViewDownLoadListener implements DownloadListener{
@Override
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype,
long contentLength) {
Log.i("tag", "url="+url);
Log.i("tag", "userAgent="+userAgent);
Log.i("tag", "contentDisposition="+contentDisposition);
Log.i("tag", "mimetype="+mimetype);
Log.i("tag", "contentLength="+contentLength);
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
}
[java] view plain copy
private class MyWebViewDownLoadListener implements DownloadListener{
@Override
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype,
long contentLength) {
Log.i("tag", "url="+url);
Log.i("tag", "userAgent="+userAgent);
Log.i("tag", "contentDisposition="+contentDisposition);
Log.i("tag", "mimetype="+mimetype);
Log.i("tag", "contentLength="+contentLength);
Uri uri = Uri.parse(url);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
}
}
猫驴聶氓聫陋忙聵炉猫掳聝莽聰篓莽鲁禄莽禄聼盲赂颅氓路虏莽禄聫氓聠聟莽陆庐莽職聞忙碌聫猫搂聢氓聶篓猫驴聸猫隆聦盲赂聥猫陆陆茂录聦猫驴聵忙虏隆忙聹聣WebView忙聹卢猫潞芦猫驴聸猫隆聦莽職聞忙聳聡盲禄露盲赂聥猫陆陆茂录聦盲赂聧猫驴聡茂录聦猫驴聶盲鹿聼氓聼潞忙聹卢盲赂聤忙禄隆猫露鲁忙聢聭盲禄卢莽職聞氓潞聰莽聰篓氓聹潞忙聶炉盲潞聠茫聙聜
忙聢聭氓聹篓茅隆鹿莽聸庐盲赂颅莽職聞猫驴聬莽聰篓
茅隆鹿莽聸庐猫娄聛忙卤聜猫驴聶忙聽路茂录職
1茂录聦茅聹聙猫娄聛盲陆驴莽聰篓WebView氓聤聽猫陆陆盲赂聙盲赂陋莽陆聭茅隆碌茂录聸
2茂录聦莽陆聭茅隆碌盲赂颅忙聹聣忙聳聡盲禄露盲赂聥猫陆陆莽職聞茅聯戮忙聨楼茂录聦莽聜鹿氓聡禄氓聬聨茅聹聙猫娄聛盲赂聥猫陆陆忙聳聡盲禄露氓聢掳SDcard茂录聸
3茂录聦莽聞露氓聬聨猫聡陋氓聤篓忙聣聯氓录聙忙聳聡盲禄露茂录聸
盲赂聥茅聺垄忙聵炉氓聟路盲陆聯猫搂拢氓聠鲁氓聤聻忙鲁聲
莽卢卢盲赂聙忙颅楼茂录聦氓炉鹿WebView猫驴聸猫隆聦盲赂聙莽鲁禄氓聢聴猫庐戮莽陆庐茫聙聜
Java盲禄拢莽聽聛
WebView webview=(WebView)layout.findViewById(R.id.webview);
webview.getSettings().setJavascriptEnabled(true);
webview.setWebChromeClient(new MyWebChromeClient());
webview.requestFocus();
// webview.loadUrl("file:///android_asset/risktest.html");
webview.loadUrl(jcrs_sub.get(position).addr);
// 猫庐戮莽陆庐web猫搂聠氓聸戮氓庐垄忙聢路莽芦炉
webview.setWebViewClient(new MyWebViewClient());
webview.setDownloadListener(new MyWebViewDownLoadListener());
//氓聠聟茅聝篓莽卤禄
public class MyWebViewClient extends WebViewClient {
// 氓娄聜忙聻聹茅隆碌茅聺垄盲赂颅茅聯戮忙聨楼茂录聦氓娄聜忙聻聹氓赂聦忙聹聸莽聜鹿氓聡禄茅聯戮忙聨楼莽禄搂莽禄颅氓聹篓氓陆聯氓聣聧browser盲赂颅氓聯聧氓潞聰茂录聦
// 猫聙聦盲赂聧忙聵炉忙聳掳氓录聙Android莽職聞莽鲁禄莽禄聼browser盲赂颅氓聯聧氓潞聰猫炉楼茅聯戮忙聨楼茂录聦氓驴聟茅隆禄猫娄聠莽聸聳 webview莽職聞WebViewClient氓炉鹿猫卤隆茫聙聜
public boolean shouldOverviewUrlLoading(WebView view, String url) {
L.i("shouldOverviewUrlLoading");
view.loadUrl(url);
return true;
}
public void onPageStarted(WebView view, String url, Bitmap favicon) {
L.i("onPageStarted");
showProgress();
}
public void onPageFinished(WebView view, String url) {
L.i("onPageFinished");
closeProgress();
}
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
L.i("onReceivedError");
closeProgress();
}
}
// 氓娄聜忙聻聹盲赂聧氓聛職盲禄禄盲陆聲氓陇聞莽聬聠茂录聦忙碌聫猫搂聢莽陆聭茅隆碌茂录聦莽聜鹿氓聡禄莽鲁禄莽禄聼芒聙聹Back芒聙聺茅聰庐茂录聦忙聲麓盲赂陋Browser盲录職猫掳聝莽聰篓finish()猫聙聦莽禄聯忙聺聼猫聡陋猫潞芦茂录聦
// 氓娄聜忙聻聹氓赂聦忙聹聸忙碌聫猫搂聢莽職聞莽陆聭 茅隆碌氓聸聻茅聙聙猫聙聦盲赂聧忙聵炉忙聨篓氓聡潞忙碌聫猫搂聢氓聶篓茂录聦茅聹聙猫娄聛氓聹篓氓陆聯氓聣聧Activity盲赂颅氓陇聞莽聬聠氓鹿露忙露聢猫麓鹿忙聨聣猫炉楼Back盲潞聥盲禄露茫聙聜
public boolean onKeyDown(int keyCode, KeyEvent event) {
// if((keyCode==KeyEvent.KEYCODE_BACK)&&webview.canGoBack()){
// webview.goBack();
// return true;
// }
return false;
}
[java] view plain copy
WebView webview=(WebView)layout.findViewById(R.id.webview);
webview.getSettings().setJavascriptEnabled(true);
webview.setWebChromeClient(new MyWebChromeClient());
webview.requestFocus();
// webview.loadUrl("file:///android_asset/risktest.html");
webview.loadUrl(jcrs_sub.get(position).addr);
// 猫庐戮莽陆庐web猫搂聠氓聸戮氓庐垄忙聢路莽芦炉
webview.setWebViewClient(new MyWebViewClient());
webview.setDownloadListener(new MyWebViewDownLoadListener());
//氓聠聟茅聝篓莽卤禄
public class MyWebViewClient extends WebViewClient {
// 氓娄聜忙聻聹茅隆碌茅聺垄盲赂颅茅聯戮忙聨楼茂录聦氓娄聜忙聻聹氓赂聦忙聹聸莽聜鹿氓聡禄茅聯戮忙聨楼莽禄搂莽禄颅氓聹篓氓陆聯氓聣聧browser盲赂颅氓聯聧氓潞聰茂录聦
// 猫聙聦盲赂聧忙聵炉忙聳掳氓录聙Android莽職聞莽鲁禄莽禄聼browser盲赂颅氓聯聧氓潞聰猫炉楼茅聯戮忙聨楼茂录聦氓驴聟茅隆禄猫娄聠莽聸聳 webview莽職聞WebViewClient氓炉鹿猫卤隆茫聙聜
public boolean shouldOverviewUrlLoading(WebView view, String url) {
L.i("shouldOverviewUrlLoading");
view.loadUrl(url);
return true;
}
public void onPageStarted(WebView view, String url, Bitmap favicon) {
L.i("onPageStarted");
showProgress();
}

public void onPageFinished(WebView view, String url) {
L.i("onPageFinished");
closeProgress();
}
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
L.i("onReceivedError");
closeProgress();
}
}
// 氓娄聜忙聻聹盲赂聧氓聛職盲禄禄盲陆聲氓陇聞莽聬聠茂录聦忙碌聫猫搂聢莽陆聭茅隆碌茂录聦莽聜鹿氓聡禄莽鲁禄莽禄聼芒聙聹Back芒聙聺茅聰庐茂录聦忙聲麓盲赂陋Browser盲录職猫掳聝莽聰篓finish()猫聙聦莽禄聯忙聺聼猫聡陋猫潞芦茂录聦
// 氓娄聜忙聻聹氓赂聦忙聹聸忙碌聫猫搂聢莽職聞莽陆聭 茅隆碌氓聸聻茅聙聙猫聙聦盲赂聧忙聵炉忙聨篓氓聡潞忙碌聫猫搂聢氓聶篓茂录聦茅聹聙猫娄聛氓聹篓氓陆聯氓聣聧Activity盲赂颅氓陇聞莽聬聠氓鹿露忙露聢猫麓鹿忙聨聣猫炉楼Back盲潞聥盲禄露茫聙聜
public boolean onKeyDown(int keyCode, KeyEvent event) {
// if((keyCode==KeyEvent.KEYCODE_BACK)&&webview.canGoBack()){
// webview.goBack();
// return true;
// }
return false;
}
莽卢卢盲潞聦忙颅楼茂录聦猫碌路莽潞驴莽篓聥氓录聙氓搂聥盲赂聥猫陆陆忙聳聡盲禄露茫聙聜
Java盲禄拢莽聽聛
//氓聠聟茅聝篓莽卤禄
private class MyWebViewDownLoadListener implements DownloadListener {
@Override
public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype,
long contentLength) {
if(!Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)){
Toast t=Toast.makeText(mContext, "茅聹聙猫娄聛SD氓聧隆茫聙聜", Toast.LENGTH_LONG);
t.setGravity(Gravity.CENTER, 0, 0);
t.show();
return;
}
DownloaderTask task=new DownloaderTask();
task.execute(url);
}
}
//氓聠聟茅聝篓莽卤禄
private class DownloaderTask extends AsyncTask<String, Void, String> {
public DownloaderTask() {
}
@Override
protected String doInBackground(String... params) {
// TODO Auto-generated method stub
String url=params[0];
// Log.i("tag", "url="+url);
String fileName=url.substring(url.lastIndexOf("/")+1);
fileName=URLDecoder.decode(fileName);
Log.i("tag", "fileName="+fileName);
File directory=Environment.getExternalStorageDirectory();
File file=new File(directory,fileName);
if(file.exists()){
Log.i("tag", "The file has already exists.");
return fileName;
}
try {
HttpClient client = new DefaultHttpClient();
// client.getParams().setIntParameter("http.socket.timeout",3000);//猫庐戮莽陆庐猫露聟忙聴露
HttpGet get = new HttpGet(url);
HttpResponse response = client.execute(get);
if(HttpStatus.SC_OK==response.getStatusLine().getStatusCode()){
HttpEntity entity = response.getEntity();
InputStream input = entity.getContent();
writeToSDCard(fileName,input);
input.close();
// entity.consumeContent();
return fileName;
}else{
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
@Override
protected void onCancelled() {
// TODO Auto-generated method stub
super.onCancelled();
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
closeProgressDialog();
if(result==null){
Toast t=Toast.makeText(mContext, "猫驴聻忙聨楼茅聰聶猫炉炉茂录聛猫炉路莽篓聧氓聬聨氓聠聧猫炉聲茂录聛", Toast.LENGTH_LONG);
t.setGravity(Gravity.CENTER, 0, 0);
t.show();
return;
}
Toast t=Toast.makeText(mContext, "氓路虏盲驴聺氓颅聵氓聢掳SD氓聧隆茫聙聜", Toast.LENGTH_LONG);
t.setGravity(Gravity.CENTER, 0, 0);
t.show();
File directory=Environment.getExternalStorageDirectory();
File file=new File(directory,result);
Log.i("tag", "Path="+file.getAbsolutePath());
Intent intent = getFileIntent(file);
startActivity(intent);
}
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
showProgressDialog();
}
@Override

protected void onProgressUpdate(Void... values) {
// TODO Auto-generated method stub
super.onProgressUpdate(values);
}
}


