MyDataHelps applications can subscribe to events. Since applications may remain in memory indefinitely on iOS and Android, it is often necessary to listen for these events to know when to refresh the data being displayed.
The following event types are currently supported:
Event | Description | Parameters |
---|---|---|
applicationDidBecomeVisible |
Triggers whenever the application becomes visible. For instance if:
|
|
externalAccountSyncComplete |
Triggers whenever an external account finishes synchronizing. Only supported on iOS/Android devices. | An object containing fields for externalAccountProviderID and externalAccountProviderName . |
surveyDidFinish |
Triggers whenever a survey is finished. | An object containing fields for reason and surveyName . |
tokenWillExpire |
Triggers when the participant access token is due to expire. |
MyDataHelps.on(eventName, callback)
Triggers the callback when the specified event occurs.
function refreshApplicationState(result) {
if (result.reason != "Completed") {
return;
}
//Get the current date at midnight
var today = new Date().setHours(0,0,0,0);
//Query for survey answers from the MoodRating step recorded anytime today.
var surveyQueryParams = {
stepIdentifier: "MoodRating",
after: today
};
var lowMoodThreshold = 4;
MyDataHelps
.querySurveyAnswers(surveyQueryParams)
.then(function(answerPage) {
//For simplicity, assume there is exactly 0 or 1 responses to this survey step today.
if (answerPage.surveyAnswers[0] &&
answerPage.surveyAnswers[0].answers[0] &&
parseInt(answerPage.surveyAnswers[0].answers[0]) <= lowMoodThreshold) {
//Show the participant resources to help their mood.
MyDataHelps.showTab('MoodEnhancementResources');
}
});
}
MyDataHelps.on('surveyDidFinish', refreshApplicationState);
function refreshApplicationState(result) {
if (result.reason != "Completed") {
return;
}
//Get the current date at midnight
var today = new Date().setHours(0,0,0,0);
//Query for survey answers from the MoodRating step recorded anytime today.
var surveyQueryParams = {
stepIdentifier: "MoodRating",
after: today
};
var lowMoodThreshold = 4;
MyDataHelps
.querySurveyAnswers(surveyQueryParams)
.then(function(answerPage) {
//For simplicity, assume there is exactly 0 or 1 responses to this survey step today.
if (answerPage.surveyAnswers[0] &&
answerPage.surveyAnswers[0].answers[0] &&
parseInt(answerPage.surveyAnswers[0].answers[0]) <= lowMoodThreshold) {
//Show the participant resources to help their mood.
MyDataHelps.showTab('MoodEnhancementResources');
}
});
}
MyDataHelps.on('surveyDidFinish', refreshApplicationState);
MyDataHelps.off(eventName, callback)
Removes a previously-registered event subscription.