2014-09-01 26 views
5

tôi sử dụng plugin tuyệt vời https://github.com/katzer/cordova-plugin-local-notifications này để triển khai thông báo cục bộ khi tải xuống tệp. tôi không tìm thấy cách hiển thị thanh tiến trình trong thông báo như trong một thông báo gốc http://javatechig.com/wp-content/uploads/2014/05/Displaying-Progress-Notification-in-Android-Example.png bạn có thể trợ giúp không?thanh tiến trình hiển thị trong thông báo địa phương cordova

+0

có bất kỳ câu trả lời? –

+0

không may là không – ginfo1

Trả lời

0

Sử dụng Plugin cordova-file-Chuyển và làm cho những thay đổi sau:

Bạn có thể thay đổi các plugin theo cách này cho nền tảng Android.

Tạo lớp FileProgressBarTask với mã dưới đây:

package org.apache.cordova.filetransfer; 

import android.app.NotificationManager; 
import android.os.AsyncTask; 
import android.support.v4.app.NotificationCompat; 
import android.util.Log; 

class FileProgressBarTask extends AsyncTask<Void, Integer, Integer> { 

    private NotificationCompat.Builder mBuilder; 
    private NotificationManager mNotificationManager; 
    int id = 0; 
    int progress = 0; 

    FileProgressBarTask(NotificationCompat.Builder mBuilder, NotificationManager mNotificationManager, int id){ 

     Log.d("TAG", "Progress Bar"); 

     this.mBuilder = mBuilder; 
     this.mNotificationManager = mNotificationManager; 
     this.id = id; 

     super.execute(); 
    } 

    @Override 
    protected void onPreExecute(){ 
     super.onPreExecute(); 

     mBuilder.setProgress(150, 0, false); 
     mNotificationManager.notify(id, mBuilder.build()); 
    } 

    @Override 
    protected void onProgressUpdate(Integer... values){ 
     mBuilder.setProgress(150, values[0], false); 
     mNotificationManager.notify(id, mBuilder.build()); 
     super.onProgressUpdate(values); 
    } 

    @Override 
    protected Integer doInBackground(Void... params) { 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Integer result){ 
     super.onPostExecute(result); 
     mBuilder.setContentText("Download Concluído"); 

     mBuilder.setProgress(0, 0, false); 
     mNotificationManager.notify(id, mBuilder.build()); 
    } 
} 

Thay đổi lớp FileTransfer với mã dưới đây:

import android.content.res.Resources; 
import android.content.Context; 
import android.app.NotificationManager; 
import android.support.v4.app.NotificationCompat; 
import android.support.v4.app.NotificationCompat.Builder; 

Trên dòng ~ 700 trong phương pháp tải trên lớp FileTransfer:

Context contextApplication = cordova.getActivity().getApplicationContext(); 
Resources resources = contextApplication.getResources(); 
String pkgName = contextApplication.getPackageName(); 

int resId = resources.getIdentifier("ic_action_download", "drawable", pkgName); 

mNotificationManager = (NotificationManager) cordova.getActivity().getSystemService(Context.NOTIFICATION_SERVICE); 
mBuilder = new NotificationCompat.Builder(cordova.getActivity()); 
mBuilder.setContentTitle("Download File") 
     .setContentText("Progress") 
     .setSmallIcon(resId); 

final FileProgressBarTask progressBarTask = new FileProgressBarTask(mBuilder, mNotificationManager, id); 

Tìm mã khối trên phương thức d ownload có chứa: whileprogress.setLoaded(inputStream.getTotalRawBytesRead()); trên phương pháp download, chèn mã dưới đây:

long lng = Math.abs((progress.getLoaded()/100)/100); 
progressBarTask.onProgressUpdate(Integer.parseInt(String.valueOf(lng))); 

Dựa trên:

Các vấn đề liên quan