react-native-wear-connectivity
Version:
Enstablish a two-way connection with wearOS
61 lines (57 loc) • 2.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.WearConnectivity = void 0;
exports.monitorFileTransfers = monitorFileTransfers;
Object.defineProperty(exports, "sendMessage", {
enumerable: true,
get: function () {
return _messages.sendMessage;
}
});
exports.startFileTransfer = void 0;
Object.defineProperty(exports, "watchEvents", {
enumerable: true,
get: function () {
return _subscriptions.watchEvents;
}
});
var _reactNative = require("react-native");
var _subscriptions = require("./subscriptions");
var _messages = require("./messages");
const LINKING_ERROR = `The package 'react-native-wear-connectivity' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
ios: "- You have run 'pod install'\n",
default: ''
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
// @ts-expect-error
const isTurboModuleEnabled = global.__turboModuleProxy != null;
const WearConnectivityModule = isTurboModuleEnabled ? require('./NativeWearConnectivity').default : _reactNative.NativeModules.WearConnectivity;
const WearConnectivity = exports.WearConnectivity = WearConnectivityModule ? WearConnectivityModule : new Proxy({}, {
get() {
throw new Error(LINKING_ERROR);
}
});
const startFileTransfer = (file, _metadata) => {
return WearConnectivity.sendFile(file, _metadata);
};
exports.startFileTransfer = startFileTransfer;
// Define the headless task
const WearConnectivityTask = async taskData => {
// Emit an event or process the message as needed
_reactNative.DeviceEventEmitter.emit('message', taskData);
};
/**
* Monitors file transfer events.
* @param callback Function to receive transfer events.
* @returns Unsubscribe function.
*/
function monitorFileTransfers(callback) {
const subscription = _reactNative.DeviceEventEmitter.addListener('FileTransferEvent', callback);
return () => {
subscription.remove();
};
}
// Register the headless task with React Native
_reactNative.AppRegistry.registerHeadlessTask('WearConnectivityTask', () => WearConnectivityTask);
//# sourceMappingURL=index.js.map