You would have all seen a QR code. They are the barcode looking squares that are on tickets, magazines and even store fronts. Advertisers use them to take a customer to a website, but they can be used for so much more than that.
Usually, QR codes are used to promote a website or some specific marketing drive. The person scans the code with their handheld device of choice and the software on the device opens the specified website where the user can interact in some way. QR codes give the same hit as a traditional barcode but with an extra shot of caffeine. Furthermore, as developers we can configure the code to do much more than just open a website.
They are just images in much the same way as traditional barcodes are. The images have "commands" built-in (called responses). The job of the software that reads the code is to capture the image, process the command and carry out the response. Commonly, the response is to open a browser and navigate to a particular URL. The URL can include querystring values so authentication or promotional information can be passed in (useful for analysis and demographics etc).
Since we have our users on their handheld device, we want to make the most of that environment. Having a browser window open is a good start, but we can also have the device send an email, add a calendar event, make a phone call or even initiate an instant message. These functions do rely on the scanning software that is installed on the device, so it may not always be possible. Not all readers are created equally, so you will need to take this into consideration when developing these strategies.
At it's core, the intended action is determined by the URI (Uniform Resource Identifier). Different URIs are mailto:// (send an email), file:// (open a file) and tel:// (make a phone call). Now we are not limited to just opening a website. We can have the device open the application of choice and begin a channel of communication. Here is a list of URIs that you might find useful.
- mailto:<email> - open the default email application with a new email window activated and the email address already entered. You can even pass querystring values of CC, BCC and Body to pre-fill these values
- tel:<number> - open the phone application and prompt the user to call the number that follows the URI eg tel://555-5555-5555
- sms:<number> - open the SMS application with the recipient number pre-filled (similar to tel:)
- feed:<url> - open the rss feed at the URL
- facetime:<number> - begin a facetime call with the number that follows the URI
- skype:<username|number>?query - starts a skype call with a username or phone number. More querystring values exist for this URI too like add, call, chat, sendfile etc
To make this work, we may need to get around an inherit problem with QR codes. That is, most code creation software require that the URI be http:. We can fix this by using TinyURL or some other URL shortening service. This allows us to specify the URI we need in the format required by the software. Then follow the required steps to produce a code and you have a custom code that executes a custom action when scanned.
You can create your own QR codes using sites such as QRStuff.com.
Til next time ...