touch-sdk v0.6.1
Touch SDK Web
Connects to Doublepoint Touch SDK compatible Bluetooth devices – like this WearOS app.
Works with Chrome-based browsers. (more info)
Importing (URL)
<script src="https://cdn.jsdelivr.net/npm/touch-sdk@0.6.0/dist/main.js"></script>const Watch = TouchSDK.WatchImporting (NPM)
npm install touch-sdkimport { Watch } from 'touch-sdk'Example using URL import
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/touch-sdk@0.5.2/dist/main.js"></script>
</head>
<body>
<script>
const watch = new TouchSDK.Watch()
const connectButton = watch.createConnectButton()
document.body.appendChild(connectButton)
watch.addEventListener('tap', () => {
console.log('tap')
})
</script>
</body>
</html>Reference
Connection
watch.createConnectButton
Returns a button element with the following properties:
onclickcallswatch.requestConnection- Text: Connect Touch SDK Controller
- Class (for CSS):
touch-sdk-connect-button - When the user selects a Touch SDK compatible device, the button is hidden.
- When the watch disconnects, the button is shown again.
This function does not add the button to the DOM.
watch.requestConnection
Can only be called as a result of a user action, for example a button click. Otherwise doesn't do anything.
watch.requestConnection().then(() => {
console.log('connected')
}, error => {
alert(error.message)
})Input events
Gesture prediction
watch.addEventListener('tap', (event) => {
console.log('tap')
})
```javascript
watch.addEventListener('probability', (event) => {
console.log("gesture probability:", event.detail)
})Ray casting (arm direction)
watch.addEventListener('armdirectionchanged', event => {
const { dx, dy } = event.detail
console.log(dx, dy)
})Raw motion (IMU)
All applicable units are SI-based.
Acceleration
watch.addEventListener('accelerationchanged', (event) => {
const { x, y, z } = event.detail
console.log(x, y, z)
})Rotation (gyroscope)
watch.addEventListener('angularvelocitychanged', (event) => {
const { x, y, z } = event.detail
console.log(x, y, z)
})Gravity Vector
watch.addEventListener('gravityvectorchanged', (event) => {
const { x, y, z } = event.detail
console.log(x, y, z)
})Orientation (quaternion)
watch.addEventListener('orientationchanged', (event) => {
const { x, y, z, w } = event.detail
console.log(x, y, z, w)
})Touch Screen
Touch Start
watch.addEventListener('touchstart', (event) => {
const { x, y } = event.detail
console.log(x, y)
})Touch Move
watch.addEventListener('touchmove', (event) => {
const { x, y } = event.detail
console.log(x, y)
})Touch End
watch.addEventListener('touchend', (event) => {
const { x, y } = event.detail
console.log(x, y)
})Touch Cancel
For example the user swiped from the edge of the screen, and triggered an operating system gesture. Usually touchcancel should be handled the same way as touchend.
watch.addEventListener('touchcancel', (event) => {
const { x, y } = event.detail
console.log(x, y)
})Mechanical
Rotary Dial
watch.addEventListener('rotary', (event) => {
const { step } = event.detail
console.log(step)
})Button
In Wear OS this is the back button. Only clicks are registered, no button down and button up events.
watch.addEventListener('button', (event) => {
console.log('button')
})Miscellaneous
After the connected event, several watch properties become available.
watch.addEventListener('connected', (event) => {
watch.hand // 'left' or 'right'
watch.hapticsAvailable // true or false
watch.touchScreenResolution // (width, height). (0, 0) if no touch screen
watch.batteryPercentage // 0-100
})Output
Haptics
Intensity is between 0 and 1. Length is milliseconds, between 0 and 5000.
watch.triggerHaptics(intensity, length)Developing: build a new version
npm install
npm run build
npm publish2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago