1bc2ed2b3Sopenharmony_ci/* 2bc2ed2b3Sopenharmony_ci * Copyright (C) 2024 Huawei Device Co., Ltd. 3bc2ed2b3Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4bc2ed2b3Sopenharmony_ci * you may not use this file except in compliance with the License. 5bc2ed2b3Sopenharmony_ci * You may obtain a copy of the License at 6bc2ed2b3Sopenharmony_ci * 7bc2ed2b3Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8bc2ed2b3Sopenharmony_ci * 9bc2ed2b3Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10bc2ed2b3Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11bc2ed2b3Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12bc2ed2b3Sopenharmony_ci * See the License for the specific language governing permissions and 13bc2ed2b3Sopenharmony_ci * limitations under the License. 14bc2ed2b3Sopenharmony_ci */ 15bc2ed2b3Sopenharmony_ci#ifndef NDEF_HAR_DISPATCH_H 16bc2ed2b3Sopenharmony_ci#define NDEF_HAR_DISPATCH_H 17bc2ed2b3Sopenharmony_ci 18bc2ed2b3Sopenharmony_ci#include <shared_mutex> 19bc2ed2b3Sopenharmony_ci#include <string> 20bc2ed2b3Sopenharmony_ci#include "app_data_parser.h" 21bc2ed2b3Sopenharmony_ci#include "if_system_ability_manager.h" 22bc2ed2b3Sopenharmony_ci#include "taginfo.h" 23bc2ed2b3Sopenharmony_ci 24bc2ed2b3Sopenharmony_cinamespace OHOS { 25bc2ed2b3Sopenharmony_cinamespace NFC { 26bc2ed2b3Sopenharmony_cinamespace TAG { 27bc2ed2b3Sopenharmony_ciclass NdefHarDispatch { 28bc2ed2b3Sopenharmony_cipublic: 29bc2ed2b3Sopenharmony_ci NdefHarDispatch(); 30bc2ed2b3Sopenharmony_ci ~NdefHarDispatch() {} 31bc2ed2b3Sopenharmony_ci static NdefHarDispatch& GetInstance(); 32bc2ed2b3Sopenharmony_ci bool DispatchBundleAbility( 33bc2ed2b3Sopenharmony_ci const std::string &harPackage, std::shared_ptr<KITS::TagInfo> tagInfo, const std::string &mimeType, 34bc2ed2b3Sopenharmony_ci const std::string &uri); 35bc2ed2b3Sopenharmony_ci bool DispatchUriToBundleAbility(const std::string &uri); 36bc2ed2b3Sopenharmony_ci bool DispatchMimeType(const std::string &type, std::shared_ptr<KITS::TagInfo> tagInfo); 37bc2ed2b3Sopenharmony_ci bool DispatchWebLink(const std::string &webAddress, const std::string &browserBundleName); 38bc2ed2b3Sopenharmony_ci void OnBrowserOpenLink(); 39bc2ed2b3Sopenharmony_ci 40bc2ed2b3Sopenharmony_ciprivate: 41bc2ed2b3Sopenharmony_ci static sptr<AppExecFwk::IBundleMgr> GetBundleMgrProxy(); 42bc2ed2b3Sopenharmony_ci std::shared_mutex mutex_ {}; 43bc2ed2b3Sopenharmony_ci}; 44bc2ed2b3Sopenharmony_ci} // namespace TAG 45bc2ed2b3Sopenharmony_ci} // namespace NFC 46bc2ed2b3Sopenharmony_ci} // namespace OHOS 47bc2ed2b3Sopenharmony_ci#endif // NDEF_HAR_DISPATCH_H