- plugin:
-
- package com.phonegap.Sample;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.InputStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import org.json.JSONArray;
- import org.json.JSONException;
- import com.phonegap.api.Plugin;
- import com.phonegap.api.PluginResult;
- public class Downloader extends Plugin
- {
- @Override
- public PluginResult execute(String arg0, JSONArray arg1, String arg2)
- {
- if(arg0.equals("downloadFile"))
- {
- try
- {
- return this.downloadUrl(arg1.getString(0),arg1.getString(1),arg1.getString(2),arg1.getString(3));
- }
- catch (JSONException e)
- {
- e.printStackTrace();
- return new PluginResult(PluginResult.Status.ERROR,"param errors");
- }
- }else
- {
- return new PluginResult(PluginResult.Status.INVALID_ACTION);
- }
- }
- private PluginResult downloadUrl(String fileUrl, String dirName, String fileName,String overWirte)
- {
- File dir = new File(dirName);
- if(!dir.exists())
- {
- dir.mkdirs();
- }
- File file = new File("mnt/sdcard/" + dirName,fileName);
- if(overWirte.equals("false") && file.exists())
- {
- return new PluginResult(PluginResult.Status.OK,"exist");
- }
- try
- {
- URL url = new URL(fileUrl);
- HttpURLConnection conn = (HttpURLConnection) url.openConnection();
- conn.setRequestMethod("GET");
- conn.setDoOutput(true);
- conn.connect();
- InputStream is = conn.getInputStream();
- byte[] buffer = new byte[1024];
- int len = 0;
- FileOutputStream fos = new FileOutputStream(file);
- while((len = is.read(buffer))!=-1)
- {
- fos.write(buffer,0,len);
- }
- fos.close();
- }
- catch (Exception e)
- {
- e.printStackTrace();
- return new PluginResult(PluginResult.Status.ERROR,"error : " + e);
- }
- return new PluginResult(PluginResult.Status.OK,fileName);
- }
- }
- js:
-
- function Downloader(){
- }
- Downloader.prototype.downloadFile = function(fileUrl,dirName,fileName,overwrite,win,fail) {
- if(overwrite==false) overwrite="false";
- else overwrite="true";
- PhoneGap.exec(win, fail, "Downloader", "downloadFile", [fileUrl,dirName,fileName,overwrite]);
- };
- PhoneGap.addConstructor(function() {
- PhoneGap.addPlugin("downloader", new Downloader());
- PluginManager.addService("Downloader","com.phonegap.Sample.Downloader");
- });
-
- <!DOCTYPE html>
- <head>
- <meta charset=utf-8 />
- <title>无标题文档</title>
- <script type="text/javascript" src="phonegap.0.9.4.js"></script>
- <script type="text/javascript" src="downloader.js"></script>
- <script type="text/javascript" src="jquery-1.8.3.min.js"></script>
- <link rel="stylesheet" href="jquery.mobile-1.3.0.min.css" />
- <script type="text/javascript" src="jquery.mobile-1.3.0.min.js"></script>
- <script type="text/javascript">
- $(function(){
- $("#btn").bind("click",function(){
- window.plugins.downloader.downloadFile("http://127.0.0.1:8090/test/1.jpg","cache/","2.jpg",false,function(data){
- if(data == "exist"){
- alert("File already exist");
- }else
- {
- alert("File saved on sd card")
- }
- },function(data){
- alert("error: "+data);
- });
- });
- });
- </script>
- </head>
- <body>
- <a data-role="button" id="btn">下载</a>
- </body>
android下载
最新推荐文章于 2021-05-26 11:34:55 发布