車が価格を変更するたびに、アプリからユーザーに通知が送信されます。 1時間ごとに実行されるコードで実行されます。リアクションネイティブアップデートAsyncStorageアイテム
コードは以下の通りです:
backgroundData(){
BackgroundTimer.setInterval(() => {
AsyncStorage.getItem('key').then(JSON.parse).then(items => {
this.setState({value: items});
})
if(!this.state.value == 0 || !this.state.value == null){
const promises = this.state.value.map((item, index) =>
fetch(`URL/GetDetalhesViatura?CarID=${item[0]}`)
.then(response => response.json())
)
Promise.all(promises).then(viaturas => this.setState({viaturas: flatten(viaturas)}))
const newItem = []
this.state.viaturas.map((item, index) =>
newItem.push([item.Preco, item.CodViatura]),
this.setState({ stateArray: newItem })
)
const newItem2 = []
this.state.value.map((item, index) =>
newItem2.push([item[1], item[0]]),
this.setState({stateArray2: newItem2})
)
var results = new Array();
//CODE TO CHECK ARRAYS FOR DIFFERENT PRICES
this.setState({results: results})
if(!this.state.results == 0 || !this.state.results == null){
const promises = this.state.results.map((item, index) =>
fetch(`URL/GetDetalhesViatura?CarID=${item[1]}`)
.then(response => response.json())
)
Promise.all(promises).then(viaturas2 => this.setState({viaturas2: flatten(viaturas2)}))
this.state.viaturas2.map((item, index) =>
PushNotification.localNotification({
message: "Notification",
})
)
}
} else {
console.log('empty')
}
}, 9999999);
}
まず、それは私のAsyncStorage上の現在のデータをfetchs。データがある場合は、APIから新しいデータをフェッチした後、両方のデータを比較し、異なる価格がある場合は通知をユーザーに送信します。
問題は、価格が変更された場合、車ごとに'key'
を新しい価格で更新する必要があるか、アプリがユーザーに通知を送信し続けることです。