Search code examples
androidcordovabluetoothcordova-plugins

plugin cordova BluetoothLE


I've got some trouble using the BluetoothLE plug-in for apache cordova. This is the first time that I try to install one, so I may be missing something.

In my repo : $cordova plugin ls com.randdusing.bluetoothle 1.0.0 "Bluetooth LE"

So the plug-in should be installed. And here is my js :

$(document).ready(function(){
    //try to enable bluetooth
    bluetoothle.initialize(initializeSuccess, initializeError, true);
    $("#tiles").append($('Bye'));
});

function initializeSuccess(obj) {
    $("#tiles").append($('Hello'));
}

function initializeError(obj) {
    $("#tiles").append($('Hello'));
}

So, I should have on my application page an "Hello" followed by a "Bye", but it doesn't work. I haven't touch any file generated by cordova but www folder. What am I missing?


Solution

  • Okay, I've got it working. Here's the full code :

    index.html :

    <html>
        <head>
            <meta charset="utf-8" />
            <meta name="format-detection" content="telephone=no" />
            <!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
            <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
            <link rel="stylesheet" type="text/css" href="css/index.css" />
            <meta name="msapplication-tap-highlight" content="no" />
            <title>Hello World</title>
        </head>
        <body>
            <div class="app">
                <h1>Apache Cordova</h1>
                <div id="deviceready" class="blink">
                    <p class="event listening">Connecting to Device</p>
                    <p class="event received">Device is Ready</p>
                </div>
            </div>
            <script type="text/javascript" src="cordova.js"></script>
            <script type="text/javascript" src="js/index.js"></script>
            <script type="text/javascript">
                app.initialize();
            </script>
        </body>
    </html>
    

    index.js :

    var app = {
        // Application Constructor
        initialize: function() {
            this.bindEvents();
        },
        // Bind Event Listeners
        //
        // Bind any events that are required on startup. Common events are:
        // 'load', 'deviceready', 'offline', and 'online'.
        bindEvents: function() {
            document.addEventListener('deviceready', this.onDeviceReady, false);
        },
        // deviceready Event Handler
        //
        // The scope of 'this' is the event. In order to call the 'receivedEvent'
        // function, we must explicitly call 'app.receivedEvent(...);'
        onDeviceReady: function() {
            app.receivedEvent('deviceready');
        },
        // Update DOM on a Received Event
        receivedEvent: function(id) {
            alert("Hello");
            bluetoothle.initialize(initializeSuccess, initializeError, true);
            alert("Bye");
        }
    };
    
    function initializeSuccess(obj) {
        alert("Success");
    }
    
    function initializeError(obj) {
        alert("Failure");
    }