react-native-ailink
v0.0.1
Published
AILink broadcast scale React Native module (iOS + Android)
Maintainers
Readme
react-native-ailink
AILink 广播秤(Broadcast Scale)React Native 原生模块,支持 iOS 与 Android(RN 0.83.x 可用)。
功能
- 扫描 AILink 广播秤
- 解析广播秤数据(体重/阻抗/温度/DID/原始数据)
- 由 JS 传入算法参数(性别/年龄/身高/算法类型),Native 计算体脂等结果并通过事件回传
安装(本地)
在你的 RN 项目里:
yarn add file:../react-native-ailink然后执行 pod install(iOS)或重新编译 Android。
iOS 配置(宿主 App)
- 在工程中提供 AILinkBleSDK.framework(与 AILinkBleSDKDemo 中使用的同一份)。
- 在 Podfile 的
post_install中为所有 target 增加该 framework 的搜索路径,例如(按你仓库实际路径调整):
post_install do |installer|
# ... react_native_post_install 等 ...
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['FRAMEWORK_SEARCH_PATHS'] ||= ['$(inherited)']
path = '"$(SRCROOT)/../../AILink_ios/AILinkBleSDKDemo"'
unless config.build_settings['FRAMEWORK_SEARCH_PATHS'].include?(path)
config.build_settings['FRAMEWORK_SEARCH_PATHS'] << path
end
end
end
end- 在 Xcode 中为 Info.plist 增加蓝牙使用说明(如
NSBluetoothAlwaysUsageDescription),并确保有蓝牙权限。
Android 权限(宿主 App)
宿主 App 需要在运行时申请蓝牙相关权限(Android 12+)以及(Android 11 及以下)定位权限。
推荐使用 react-native-permissions,或你自己用 PermissionsAndroid 申请:
android.permission.BLUETOOTH_SCANandroid.permission.BLUETOOTH_CONNECTandroid.permission.ACCESS_FINE_LOCATION(<= Android 11 扫描常需要)
JS 使用示例
import { AilinkBroadcastScale, emitter } from 'react-native-ailink';
const sub = emitter.addListener('broadcastScaleWeight', (e) => {
console.log('weight', e);
});
emitter.addListener('broadcastScaleBodyFat', (e) => {
console.log('bodyFat', e);
});
await AilinkBroadcastScale.setAlgorithmParams({
algorithmType: 0, // 例如 AlgorithmUtil.AlgorithmType.TYPE_AICARE(见 Android 侧常量)
sex: 1,
age: 25,
heightCm: 170,
});
AilinkBroadcastScale.setComputeOptions({ enabled: true, onlyWhenStable: true });
await AilinkBroadcastScale.startScan({ timeoutMs: 0, autoSelectFirst: true });
// ...
await AilinkBroadcastScale.stopScan();
sub.remove();发布到 npm
确认包名
- 当前包名为
react-native-ailink。若该名在 npm 已被占用,可改为 scoped 包,例如@你的组织/react-native-ailink(在package.json里改name)。
- 当前包名为
登录 npm(未登录时)
npm login按提示输入 npm 账号、密码和邮箱。
选版本号
- 在
package.json中改version(如0.0.2)。 - 遵守语义化版本:主版本.次版本.修订号。
- 在
试打包(不发布)
cd react-native-ailink npm pack会生成
react-native-ailink-0.0.1.tgz,可解压检查是否包含index.js、ios/、android/src等所需文件。发布
npm publish若使用 scoped 包且首次发布为公开包,需加
--access public:npm publish --access public安装方式
发布成功后,用户可安装:yarn add react-native-ailink # 或 npm i react-native-ailink
说明:.npmignore 已排除 android/build、android/.gradle;package.json 的 files 字段已限定发布内容,避免把构建产物发到 npm。
