【问题标题】:BluetoothSerial plugin is not working with ionicBluetoothSerial 插件不适用于 ionic
【发布时间】:2015-06-23 10:04:23
【问题描述】:

我正在尝试将蓝牙集成到我的 ionic 应用程序中,以便它可以从蓝牙设备接收数据。我尝试使用蓝牙插件,但在 PC 和 android 设备上都出现了一堆错误。 我已经使用以下命令安装了蓝牙串行

cordova 插件添加 com.megster.cordova.bluetoothserial

%cordova plugins
com.ionic.keyboard 1.0.4 "Keyboard"
com.megster.cordova.bluetoothserial 0.4.3 "Bluetooth Serial"
cordova-plugin-whitelist 1.0.1-dev "Whitelist"
org.apache.cordova.console 0.2.13 "Console"
org.apache.cordova.device 0.3.0 "Device"

这是我的代码

main.html

<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="initial-scale=1, maximum-scale=1, user-  scalable=no, width=device-width">
<title></title>

<link href="lib/ionic/css/ionic.css" rel="stylesheet">
<link href="css/style.css" rel="stylesheet">
 <script src="lib/ionic/js/ionic.bundle.js"></script>
<script src="js/ng-cordova.min.js"></script>
<script src="cordova.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.3.15/angular-resource.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.5/angular-route.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/ng-tags-input/2.3.0/ng-tags-input.min.js"> </script>
<script src="js/app.js"></script>
</head>

app.js

angular.module('starter'   ['ionic','ngCordova','ngRoute','ngTagsInput'])
.run(function($ionicPlatform) {
 $ionicPlatform.ready(function() {
 // Hide the accessory bar by default (remove this to show the    accessory bar above the keyboard
 // for form inputs)
    $cordovaBluetoothSerial.isEnabled().then(
       function() {
          $cordovaDialogs.alert("Bluetooth LE is enabled", "Bluetooth LE", "GREAT!");
      },
      function() {
         $cordovaDialogs.alert("Bluetooth LE is NOT enabled", "Bluetooth LE", "Oops!");
      }
   );
if(window.cordova && window.cordova.plugins.Keyboard) {
  cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
}
if(window.StatusBar) {
  StatusBar.styleDefault();
}
 });
})
.controller('datactr',['$scope','$http'   ,'$cordovaBluetoothSerial',function($scope,$http,$cordovaBluetoothSerial)    {
console.log($cordovaBluetoothSerial.available());
}]);

我收到以下错误:

TypeError: 无法读取未定义的属性“可用”

未捕获的 ReferenceError: $cordovaBluetoothSerial 未定义

谁能帮忙?

【问题讨论】:

    标签: javascript android cordova bluetooth ionic-framework


    【解决方案1】:

    使用 $timeout,它对我有用。

    .controller('BlueController',function ($cordovaBluetoothSerial,$scope,$timeout) {...

    $scope.checkBT = function (time) {
      $timeout(function () {
        $cordovaBluetoothSerial.isEnabled().then(fun,fun);
       },time); 
    };
    $scope.checkBT(750);
    

    【讨论】:

    • 它成功了。订阅功能是否也以同样的方式使用?
    • 我认为这不是正确的答案。您无需超时,更简洁的解决方案是检查 $ionicPlatform.ready 是否可以使用 $cordovaBluetoothSerial。
    【解决方案2】:

    试试

    $ionicPlatform.ready(function() {
    
              $cordovaBluetoothSerial.isEnabled().then(function(){
                $scope.habilitado = true;
                  alert('Bluetooth habilitado');
    
                },function(){
                  alert('Bluetooth nao habilitado');
    
              });
    
        });
    

    【讨论】:

      【解决方案3】:

      此问题或多或少与 $cordovaBluetoothSerial 在您尝试使用它时不可用这一事实有关。

      另外,您需要确保您没有在浏览器上进行测试,因为它不起作用!在合适的 Android 或 iOS 设备上进行测试。

      【讨论】:

        猜你喜欢
        • 2014-10-30
        • 1970-01-01
        • 1970-01-01
        • 2018-04-19
        • 2023-02-10
        • 2017-05-14
        • 2023-03-04
        • 1970-01-01
        • 2016-04-22
        相关资源
        最近更新 更多