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

Posted

技术标签:

【中文标题】如何在不使用本机代码的情况下要求用户在 NativeScript 上启用蓝牙【英文标题】:How to ask user to enable Bluetooth on NativeScript without use Native Code 【发布时间】:2017-08-21 12:36:49 【问题描述】:

我需要要求用户启用蓝牙,但我不想使用每个平台的原生方法,NativeScript中有没有标准化的方法?

应该为这种类型的请求使用哪些类,以便代码与 iosandroid 平台兼容,或者它们可能提供的任何平台?

我需要这样的 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);
    );
  ;

【问题讨论】:

【参考方案1】:

您可以使用 nativescript-bluetooth 插件并使用 the method shown in the demo app:

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

顺便说一句,在 Android 上,您甚至可以使用 this method of the plugin 以编程方式在设备上启用蓝牙(它会征求用户的同意):

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

【讨论】:

嗨@Eddy-Verbruggen,首先感谢插件,非常好,但不适用于蓝牙经典。我更新了问题。

以上是关于如何在不使用本机代码的情况下要求用户在 NativeScript 上启用蓝牙的主要内容,如果未能解决你的问题,请参考以下文章

如何在不点击通知的情况下从通知中获取数据(firebase 云消息传递和本机反应)

如何在不为 RVM 用户授予 sudo 访问权限的情况下安装 RVM 系统要求

如何在不打开任何对话框的情况下在 Facebook 上发布消息?

如何在不使用库的情况下验证本机 Javascript 中的 Azure OAuth 访问 JWT 令牌?

如何在不循环的情况下将数组(Range.Value)传递给本机 .NET 类型?

如何在不使用核心位置服务的情况下获取用户当前的城市名称?