2014-11-08 4 views
0

사용자가 로컬 알림을 수신 한 후 5 분 이내에 작업을 완료해야하는 애플리케이션을 구축 중입니다. 작업이 완료되면 아무 일도 일어나지 않지만 작업이 완료되지 않은 경우 구문 분석 코드를 실행해야합니다.iOS가 로컬 알림과 상호 작용하지 않는 경우 감지합니다.

내 문제는 사용자가 로컬 알림과 상호 작용하지 않으면 구문 분석 클라우드 기능을 수행해야한다는 것입니다. 하지만 iOS의 까다로운 배경 모드와 멀티 태스킹 규칙 때문에이 작업을 수행하는 데 엄청난 어려움을 겪고 있습니다.

지금까지 내 앱이 훌륭하게 작동했지만 작업이 완료되지 않았고 사용자가 앱에없는 경우 코드를 수행 할 수 없습니다.

누구나 올바른 방향으로 나를 가리킬 수 있다면 정말 고마워 할 것입니다. 더 자세한 정보가 필요하시면 알려주세요.

클라우드 코드 -이 나는 ​​사용자가 로컬 notifcation 기기 수령의 5 분 이내에 작업을 완료하지 않는 경우 수행하고자하는 클라우드 코드는 다음과 같습니다

Parse.Cloud.define("chargeCustomer", function(request, response) { 
    Stripe.Charges.create({ 
    amount: request.params['amount'], 
    currency: "usd", 
    customer: request.params['customerId'] 
    }, { 
    success: function(customer) { 
     response.success(charge.id); 
    }, 
    error: function(error) { 
     response.error("Error:" +error); 
    } 
    }) 
}); 

감사합니다!

답변

1

클라우드 코드로 직장을 구경 한 적이 있습니까?

"PushNotification"이라는 새 클래스를 만들었다 고합시다. "처리 된"이라는 클래스에 부울 열/속성을 추가한다고 가정 해보십시오.

사용자가 PUSH 알림을 가져 와서 볼 때 해당 PUSH 알림에 해당하는 "PushNotification"개체를 업데이트하고 "handled"를 YES/true로 설정할 수 있습니다.

매 X 분마다 실행되는 간단한 작업을 작성할 수 있습니다. 그것은 다음과 같습니다 당신은 클라우드 코드 (특히 백그라운드 작업) here에 대한 자세한 내용을 찾을 수 있습니다

Parse.Cloud.job("checkPushes", function (request, status) { 
    var PushNotification = Parse.Object.extend("pushNotification"); 
    var query = new Parse.Query(PushNotification); 
    // Limit the query to objects created more than 5 minutes ago 
    query.lessThan("createdAt", new Date(new Date().getTime() - (1000 * 60 * 5))); 
    // Limit the query to objects where "actionPerformed" not equal to "true" 
    query.notEqualTo("handled", true); 
    query.each(function (pushNotification) { 
     // Don't forget to set "handled" to true so 
     // the same items don't keep popping up... 
    }); 
}); 

.

+0

조금 혼란 스럽습니다. 저는 파스를 사용하여 백그라운드 작업에 대한 연구를했고, 좋은 해결책 인 것 같습니다. 그러나 사용자에게 알려주지 않기 위해 로컬 알림을 사용하고 있습니다. 사용자가 매주 평일 반복하도록 알람을 설정하면 어떻게됩니까? 작업이 완료되지 않은 경우 수행하려는 클라우드 코드로 질문을 업데이트했습니다. 감사! – Jack

+0

아이디어가 있으십니까? 백그라운드 작업을 실행하는 간단한 방법이 있어야합니다. 왜냐하면 장치 및 구문 분석에 경고를 저장해야하기 때문입니다. – Jack

+0

사용자가 앱을 실행하고 있는지 확실하지 않은 경우 어떻게 기기에서이 작업을 수행 할 수있을 것으로 기대합니까? 실행중인 코드를 제어해야하는데, 이는 클라우드 코드를 의미합니다. 적어도이 장치를 제어 할 수있는 방법은 생각할 수 없습니다. 사용자가 앱을 열도록 강요 할 수는 없으므로 클라우드를 제외하고는 코드를 실행할 수 없습니다. 예정된 지역 알림 인 경우 클라우드 코드에서 일정을 잡은 다음 사용자가 무언가를했는지 여부를 '5 분 전'후에 확인해야한다고 말하고 싶습니다. 네가 다른 것을 알아 내면 알려줘. – mbm29414