【问题标题】:changing the input while using native module在使用本机模块时更改输入
【发布时间】:2021-07-07 04:55:29
【问题描述】:

在我的应用程序中,我正在使用 React Native 的本机模块来执行 healthkit 功能。
Healthkit 查询写在 swift 文件中。在前端,我调用了我在 swift 文件中定义的所有方法。

Healthkit.js 文件:

import { NativeModules } from 'react-native';

const { MyHealthLibrary } = NativeModules;

export default MyHealthLibrary as any;

App.js:

import MyHealthLibrary from './Healthkit.js';


executeQuery = () => {
let obj = {
        read: [
          "HKQuantityTypeIdentifierHeartRate"
        ],
        write: [
          "HKQuantityTypeIdentifierHeartRate"
        ]
      }

MyHealthLibrary.requestAuthorization(obj)

}

我得到下面的屏幕。这工作得很好。

现在我想做下面的事情。
在这里,我不想发送“HKQuantityTypeIdentifierHeartRate”,而是只想发送“HearRate”,并且在 Healthkit.js 文件中我想分配真实变量。但我就是无法做到这一点。

Healthkit.js 文件:

import { NativeModules } from 'react-native';

const { MyHealthLibrary } = NativeModules;
 const Read = {
    HeartRate: "HKQuantityTypeIdentifierHeartRate"
  }

  const Write = {
    HeartRate: "HKQuantityTypeIdentifierHeartRate"
  }


let HealthKit = Object.assign({}, MyHealthLibrary, {
    Constants: {
        Read: Read,
        Write: Write
    }
});


export default Healthkit as any;

App.js:

import Healthkit from './Healthkit.js';

executeQuery = () => {
let obj = {
        read: [
          "HeartRate"
        ],
        write: [
          "HeartRate"
        ]
      }

Healthkit.requestAuthorization(obj)

}

我怎样才能做到这一点?任何建议都会很棒!

【问题讨论】:

    标签: javascript ios reactjs react-native healthkit


    【解决方案1】:

    我想,这样我们就可以实现了!

    Healthkit.js 文件:

    import { NativeModules } from 'react-native';
    const { MyHealthLibrary } = NativeModules;
    
    export const permissions = {
        HeartRate: "HKQuantityTypeIdentifierHeartRate"
    }
    
    export default MyHealthLibrary as any;
    

    App.js:

    import MyHealthLibrary, { permissions } from './Healthkit.js';
    
    executeQuery = () => {
        const { HeartRate } = permissions;
        const grantedPermissions = {
            read: [HeartRate],
            write: [HeartRate]
        };
        MyHealthLibrary.requestAuthorization(grantedPermissions);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-14
      • 1970-01-01
      • 2011-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-10
      • 2017-01-01
      相关资源
      最近更新 更多