Use this API to stop listening for compass heading changes that were registered with my.onCompassChange().
Parameters
| Property | Type | Required | Description |
|---|
| callback | Function | No | The specific callback to remove. If omitted, all listeners are removed. |
Code Example
Remove Specific Listener
Page({
onLoad() {
my.onCompassChange(this.handleCompass);
},
handleCompass(res) {
console.log('Heading:', res.direction);
},
onUnload() {
my.offCompassChange(this.handleCompass);
}
});
Remove All Listeners
// Remove all compass listeners
my.offCompassChange();
Toggle Compass
Page({
data: {
compassActive: false
},
toggleCompass() {
if (this.data.compassActive) {
my.offCompassChange(this.updateHeading);
this.setData({ compassActive: false });
} else {
my.startCompass();
my.onCompassChange(this.updateHeading);
this.setData({ compassActive: true });
}
},
updateHeading(res) {
this.setData({ heading: res.direction });
}
});
Pass the same callback function reference to my.offCompassChange() that was used with my.onCompassChange() to remove only that specific listener.
my.onCompassChange
Listen for compass changes
my.startCompass
Start compass