Skip to main content
Use this API to stop listening for compass heading changes that were registered with my.onCompassChange().

Parameters

PropertyTypeRequiredDescription
callbackFunctionNoThe 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