如何要求用户在不使用本机代码的情况下在NativeScript上启用蓝牙

最后发布: 2017-08-21 12:36:49


问题

我需要要求用户启用蓝牙,但是我不想使用每个平台的本机方法,因此NativeScript中是否有标准化的方法?

此类请求应使用哪些类,以使代码与iOS和Android平台兼容,或者与它们兼容?

对于iOS和Android,我需要这样的代码:

  DemoAppModel.prototype.doEnableBluetooth = function () {
    bluetooth.enable().then(function(enabled) {
   if(!enabled)
      setTimeout(function() {
    /* I need this code for iOS and Android */
    Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
    startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);
      }, 500);
    });
  };
android ios bluetooth nativescript
回答

您可以使用nativescript-bluetooth插件并使用演示应用程序中显示的方法

bluetooth.isBluetoothEnabled().then(function(enabled) {
  // show an alert dialog or some nicer UI, if 'enabled' if false
});

顺便说一句,在Android上,您甚至可以通过使用此插件的方法,以编程方式在设备上启用蓝牙(它将征求用户的同意):

bluetooth.enable().then(function(enabled) { /* .. */ });