2.1.2 • Published 3 days ago

@prismadelabs/prismaid v2.1.2

Weekly downloads
5
License
ISC
Repository
github
Last release
3 days ago

Web SDK

Beta 1.0.5

Purpose

The PrismaSDK is intended to be used in a web application and collect signals created by a PrismaID tag. The PrismaSDK will internally talk to the Prismade Decoder Backend and decode that signal. The result is sent back to the application through a callback. In addition to information related to the decoded data, there are events for user interaction and potential hints to improve reading results.

Install

npm install @prismadelabs/prismaid

Usage

At the moment we provided two minimalistic samples how to use the Web SDK in

  • Javascript application
  • Ionic application

Table of Contents

Use SDK in Javascript application

It is assumed that one is experienced to create a web application, so we will not go too much into detail here. The SDK needs to collect raw touch events from any HTML element, in our example a canvas. Therefore, we will need a simple HTML page with a canvas. Secondly, the page has to include our JavaScript sample file.

# index.html

<!DOCTYPE html>
<html lang="en" dir="ltr">

<head>
    <meta charset="UTF-8">
    <title>Prisma SDK</title>
    <meta name="viewport" content="viewport-fit=cover, width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
</head>

<body>
    <canvas id="prismasdk" style="position: fixed; left: 10px; top: 10px; ">
    </canvas>

    <!-- The main bundle js is generated via browserify -->
    <script src="./bundle.js"></script>
</body>

</html>
# main.js

const pl = require("@prismadelabs/prismaid")

const canvas = document.getElementById("prismasdk")
canvas.width = window.innerWidth - 20
canvas.height = window.innerHeight - 20

const sdk = new pl.PrismaSDK("YOUR_API_KEY")  
const version = "Prisma SDK version " + pl.PrismaSDK.version()

const ctx = canvas.getContext("2d")
ctx.fillStyle = "blue"
ctx.fillRect(0, 0, canvas.width, canvas.height)
ctx.fillStyle = "white"
ctx.font = "15px Arial"
ctx.fillText(version , 10, 20)

sdk.getDetectionSuccessSubject().subscribe((response) => {
    console.log("*) detection success:", response.description())

    ctx.fillStyle = "blue"
    ctx.fillRect( 10, 30, 100, 20)
    ctx.fillStyle = "white"
    ctx.fillText(`${response.codeId}-${response.direction}`, 10, 40)
})

sdk.getDetectionErrorSubject().subscribe((response) => {
    console.log("*) detection error:", response.description())

    response.hints.forEach((hint) => {
        console.log("*) hint:", hint.description())
    })
})

sdk.getInteractionSubject().subscribe((response) => {
    console.log("*) interaction event:", response.event, response.activeSignals)
})

sdk.getInitialisationSubject().subscribe((response) => {
    console.log("*) config data:", response.codeSetTypes, response.dpi, response.devicePixelRatio)
})

sdk.getProgressSubject().subscribe((response) => {
    console.log("*) progress:", response.progress)
})

sdk.getHintSubject().subscribe((response) => {
    console.log("*) hint:", response.code, response.message, response.type)
})

sdk.getConnectivitySubject().subscribe((response) => {
    console.log("*) connectivity:", response.status)
})

sdk.attachToElement(canvas)

...

Use SDK in Ionic application

It is assumed that one is experienced with Ionic applications, so we will not go into detail here. Learn more

# home.html

<ion-content>
	<canvas #canvas id="home"></canvas>
</ion-content>
import { Component, ElementRef, ViewChild } from "@angular/core"
import { NavController } from "ionic-angular"

import { CodeType, DecoderResponseError, DecoderResponseSuccess, HintResponse, InitialisationResponse, InteractionResponse, PrismaSDK, ProgressResponse, SwipeDirection, SwipingGesture } from "@prismadelabs/prismaid"

@Component({
    selector: "page-home",
    templateUrl: "home.html",
})

export class HomePage {
    @ViewChild("canvas")
    private canvasRef: ElementRef

    private sdk: PrismaSDK

    constructor(public navCtrl: NavController, private contentManager: ContentManager) {
    }

    private ionViewDidLoad() {
        console.log("ionViewDidLoad: HomePage")

        this.initialisePrismaSDK()
    }

    private initialisePrismaSDK() {
        this.sdk = new PrismaSDK("YOUR_API_KEY")

        this.sdk.getInitialisation().setExpectedCodeType(CodeType.Displacement)
        this.sdk.getInitialisation().setExpectedSwipingGesture(SwipingGesture.singleSwipe)

        this.sdk.getDetectionSuccessSubject().subscribe((response: DecoderResponseSuccess) => {
            console.log("*) callback success:", response.codeId, response.direction)
        })

        this.sdk.getDetectionErrorSubject().subscribe((response: DecoderResponseError) => {
            console.log("*) callback error:", response.description())

            response.hints.forEach((hint) => {
                console.log("*) hint:", hint.description())
            })
        })

        this.sdk.getInteractionSubject().subscribe((response: InteractionResponse) => {
            console.log("*) interaction:", response.event, response.activeSignals)
        })

        this.sdk.getInitialisationSubject().subscribe((response: InitialisationResponse) => {
            console.log("*) config data:", response.codeSetTypes, response.dpi, response.devicePixelRatio)
        })

        this.sdk.getProgressSubject().subscribe((response: ProgressResponse) => {
            console.log("*) progress:", response.progress, response.direction, response.swipeRound)
        })

        this.sdk.getHintSubject().subscribe((response: HintResponse) => {
            console.log("*) hint:", response.code, response.message, response.type)
        })

        this.sdk.attachToElement(this.canvasRef.nativeElement)
    }

    ....
2.2.0-beta.144

3 days ago

2.2.0-beta.21

3 days ago

2.2.0-beta.143

9 days ago

2.1.2

17 days ago

2.1.2-beta.142

24 days ago

2.1.2-beta.140

3 months ago

2.1.2-beta.141

3 months ago

2.1.2-beta.137

3 months ago

2.1.2-beta.136

3 months ago

2.1.2-beta.135

3 months ago

2.1.2-beta.134

3 months ago

2.1.2-beta.139

3 months ago

2.1.2-beta.133

4 months ago

2.1.2-beta.129

4 months ago

2.1.2-beta.128

4 months ago

2.1.2-beta.127

4 months ago

2.1.2-beta.132

4 months ago

2.1.2-beta.131

4 months ago

2.1.2-beta.130

4 months ago

2.1.2-beta.126

4 months ago

2.1.2-beta.114

4 months ago

2.1.2-beta.119

4 months ago

2.1.2-beta.118

4 months ago

2.1.2-beta.117

4 months ago

2.1.2-beta.116

4 months ago

2.1.2-beta.122

4 months ago

2.1.2-beta.121

4 months ago

2.1.2-beta.120

4 months ago

2.1.2-beta.125

4 months ago

2.1.2-beta.124

4 months ago

2.1.2-beta.123

4 months ago

2.1.2-beta.111

4 months ago

2.1.2-beta.113

4 months ago

2.1.2-beta.112

4 months ago

2.1.2-beta.110

4 months ago

2.1.2-beta.104

5 months ago

2.1.2-beta.103

5 months ago

2.1.2-beta.102

5 months ago

2.1.2-beta.108

5 months ago

2.1.2-beta.107

5 months ago

2.1.2-beta.106

5 months ago

2.1.2-beta.105

5 months ago

2.1.2-beta.109

5 months ago

2.1.2-beta.101

5 months ago

2.1.2-beta.100

5 months ago

2.1.2-beta.95

5 months ago

2.1.2-beta.94

5 months ago

2.1.2-beta.99

5 months ago

2.1.2-beta.97

5 months ago

2.1.2-beta.98

5 months ago

2.1.2-beta.93

5 months ago

2.1.2-beta.74

9 months ago

2.1.2-beta.71

9 months ago

2.1.2-beta.72

9 months ago

2.1.2-beta.78

9 months ago

2.1.2-beta.75

9 months ago

2.1.2-beta.84

5 months ago

2.1.2-beta.85

5 months ago

2.1.2-beta.82

5 months ago

2.1.2-beta.83

5 months ago

2.1.2-beta.80

8 months ago

2.1.2-beta.81

5 months ago

2.1.2-beta.88

5 months ago

2.1.2-beta.89

5 months ago

2.1.2-beta.86

5 months ago

2.1.2-beta.87

5 months ago

2.1.2-beta.92

5 months ago

2.1.2-beta.69

1 year ago

2.1.2-beta.1

1 year ago

2.1.1

2 years ago

2.1.0-beta.67

2 years ago

2.1.0-beta.66

2 years ago

2.1.0-beta.65

2 years ago

2.1.0-beta.64

2 years ago

2.1.0-beta.63

2 years ago

2.1.0-beta.62

2 years ago

2.1.0-beta.61

2 years ago

2.1.0-beta.60

2 years ago

2.1.0-beta.58

2 years ago

2.1.0-beta.55

2 years ago

2.1.0-beta.54

2 years ago

2.1.0-beta.53

2 years ago

2.1.0-beta.51

3 years ago

2.1.0-beta.50

3 years ago

2.1.0-beta.7

3 years ago

2.1.0-beta.6

3 years ago

2.1.0-beta.5

3 years ago

2.1.0-beta.4

3 years ago

2.1.0-beta.3

3 years ago

2.1.0-beta.1

3 years ago

2.1.0-beta.2

3 years ago

2.1.0-beta.48

3 years ago

2.0.0-beta.11

3 years ago

1.1.1-beta.46

3 years ago

2.0.0-beta.47

3 years ago

2.0.0-beta.10

3 years ago

2.0.0-beta.9

3 years ago

2.0.0-beta.8

3 years ago

2.0.0-beta.7

3 years ago

1.1.1-beta.45

3 years ago

2.0.0-beta.2

3 years ago

2.0.0-beta.6

3 years ago

2.0.0-beta.5

3 years ago

2.0.0-beta.4

3 years ago

2.0.0-beta.3

3 years ago

2.0.0-beta.1

3 years ago

1.1.1-beta.2

3 years ago

1.1.1-beta.1

3 years ago

1.1.1-beta.44

4 years ago

1.1.1-beta.43

4 years ago

1.1.1-beta.41

4 years ago

1.1.1-beta.40

4 years ago

1.1.1-beta.38

4 years ago

1.1.1-beta.39

4 years ago

1.1.1-beta.37

4 years ago

1.1.1-beta.34

4 years ago

1.1.1-beta.33

4 years ago

1.1.1-beta.36

4 years ago

1.1.1-beta.35

4 years ago

1.2.10

4 years ago

1.1.1-beta.32

4 years ago

1.1.1-beta.31

4 years ago

1.1.1-beta.30

4 years ago

1.1.1-beta.29

4 years ago

1.2.9

4 years ago

1.1.1-beta.28

4 years ago

1.1.1-beta.27

4 years ago

1.1.1-beta.26

4 years ago

1.1.1-beta.25

4 years ago

1.1.1-beta.24

4 years ago

1.1.1-beta.23

4 years ago

1.1.1-beta.22

4 years ago

1.1.1-beta.21

4 years ago

1.1.1-beta.20

4 years ago

1.1.1-beta.19

4 years ago

1.1.1-beta.18

5 years ago

1.2.8

5 years ago

1.1.1-beta.17

5 years ago

1.1.1-beta.16

5 years ago

1.1.1-beta.15

5 years ago

1.1.1-beta.14

5 years ago

1.1.1-beta.13

5 years ago

1.1.1-beta.12

5 years ago

1.1.1-beta.11

5 years ago

1.1.1-beta.10

5 years ago

1.1.1-beta.9

5 years ago

1.2.7

5 years ago

1.1.1-beta.8

5 years ago

1.1.1-beta.7

5 years ago

1.1.1-beta.6

5 years ago

1.1.1-beta.5

5 years ago

1.1.1-beta.4

5 years ago

1.1.1-beta.3

5 years ago

1.1.0-beta.8

5 years ago

1.1.0-beta.7

5 years ago

1.1.0-beta.6

5 years ago

1.1.0-beta.5

5 years ago

1.1.0-beta.4

5 years ago

1.1.0-beta.3

5 years ago

1.1.0-beta.2

5 years ago

1.1.0-beta.1

5 years ago

1.0.16-beta.0

5 years ago

1.0.15

5 years ago

1.0.15-beta.1

5 years ago

1.0.15-beta.0

5 years ago

1.0.14

5 years ago

1.0.14-beta.3

5 years ago

1.0.14-beta.2

5 years ago

1.0.14-beta.1

5 years ago

1.0.14-beta.0

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.12-beta.0

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.10-beta.0

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago