1 /* 2 * Copyright (c) 2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16 #ifndef OHOS_ABILITY_RUNTIME_NAPI_CONTEXT_HELPER_H 17 #define OHOS_ABILITY_RUNTIME_NAPI_CONTEXT_HELPER_H 18 #include "napi_common.h" 19 #include "ability.h" 20 #include "feature_ability_common.h" 21 #include "napi/native_api.h" 22 #include "napi/native_common.h" 23 #include "napi/native_node_api.h" 24 #include "js_runtime_utils.h" 25 26 using Ability = OHOS::AppExecFwk::Ability; 27 #define MODE 0771 28 namespace OHOS { 29 namespace AppExecFwk { 30 #ifdef SUPPORT_GRAPHICS 31 napi_value SetWakeUpScreenWrap(napi_env env, napi_callback_info info, SetWakeUpScreenCB *cbData); 32 napi_value NAPI_SetDisplayOrientationWrap(napi_env env, napi_callback_info info, 33 AsyncJSCallbackInfo *asyncCallbackInfo); 34 napi_value NAPI_SetShowOnLockScreen(napi_env env, napi_callback_info info); 35 #endif 36 napi_value NAPI_VerifyPermissionWrap(napi_env env, napi_callback_info info, AsyncJSCallbackInfo *asyncCallbackInfo); 37 napi_value GetApplicationInfoWrap(napi_env env, napi_callback_info info, AppInfoCB *appInfoCB); 38 AppInfoCB *CreateAppInfoCBInfo(napi_env env); 39 napi_value NAPI_VerifySelfPermission(napi_env env, napi_callback_info info); 40 napi_value NAPI_RequestPermissionsFromUser(napi_env env, napi_callback_info info); 41 napi_value NAPI_GetFilesDir(napi_env env, napi_callback_info info); 42 napi_value NAPI_GetOrCreateDistributedDir(napi_env env, napi_callback_info info); 43 napi_value NAPI_GetCacheDir(napi_env env, napi_callback_info info); 44 /** 45 * @brief Obtains the type of this application. 46 * 47 * @param env The environment that the Node-API call is invoked under. 48 * @param info The callback info passed into the callback function. 49 * 50 * @return The return value from NAPI C++ to JS for the module. 51 */ 52 napi_value NAPI_GetCtxAppType(napi_env env, napi_callback_info info); 53 54 /** 55 * @brief Obtains the HapModuleInfo object of the application. 56 * 57 * @param env The environment that the Node-API call is invoked under. 58 * @param info The callback info passed into the callback function. 59 * 60 * @return The return value from NAPI C++ to JS for the module. 61 */ 62 napi_value NAPI_GetCtxHapModuleInfo(napi_env env, napi_callback_info info); 63 64 napi_value NAPI_GetAppVersionInfo(napi_env env, napi_callback_info info); 65 66 napi_value NAPI_GetApplicationContext(napi_env env, napi_callback_info info); 67 68 /** 69 * @brief Obtains information about the current ability. 70 * 71 * @param env The environment that the Node-API call is invoked under. 72 * @param info The callback info passed into the callback function. 73 * 74 * @return The return value from NAPI C++ to JS for the module. 75 */ 76 napi_value NAPI_GetCtxAbilityInfo(napi_env env, napi_callback_info info); 77 78 napi_value NAPI_VerifyPermission(napi_env env, napi_callback_info info); 79 80 void GetBundleNameExecuteCallback(napi_env env, void *data); 81 82 napi_value NAPI_GetBundleNameWrap(napi_env env, napi_callback_info info, AsyncJSCallbackInfo *asyncCallbackInfo); 83 napi_value GetProcessInfoWrap(napi_env env, napi_callback_info info, ProcessInfoCB *processInfoCB); 84 ProcessInfoCB *CreateProcessInfoCBInfo(napi_env env); 85 ElementNameCB *CreateElementNameCBInfo(napi_env env); 86 napi_value GetElementNameWrap(napi_env env, napi_callback_info info, ElementNameCB *elementNameCB); 87 ProcessNameCB *CreateProcessNameCBInfo(napi_env env); 88 napi_value GetProcessNameWrap(napi_env env, napi_callback_info info, ProcessNameCB *processNameCB); 89 90 DatabaseDirCB *CreateGetDatabaseDirCBInfo(napi_env env); 91 napi_value GetDatabaseDirWrap(napi_env env, napi_callback_info info, DatabaseDirCB *getDatabaseDirCB); 92 93 PreferencesDirCB *CreateGetPreferencesDirCBInfo(napi_env env); 94 napi_value GetPreferencesDirWrap(napi_env env, napi_callback_info info, PreferencesDirCB *getPreferencesDirCB); 95 } // namespace AppExecFwk 96 } // namespace OHOS 97 #endif /* OHOS_ABILITY_RUNTIME_NAPI_CONTEXT_HELPER_H */