/**
- 引用鸿蒙系统库,示例如下:
- import deviceInfo from "@ohos.deviceInfo";
- [可选实现,按需引入]
*/
/ 引入 interface.uts 文件中定义的变量 /
import {
CheckAppUpdate, OpenPermissionSetting, CheckPermissions, ClearWebCache, CheckAppUpdateOptions,
InitializePushSdkOptions, InitializePushSdk, IsNotificationEnabled, BusinessErrorData, CommonCallback,
RequestEnableNotification, OpenNotificationSettings, SetPushCallbackOptions, SetPushCallback, WatchMessagePayloadOptions, WatchMessagePayload,
OnWxResp, OnWxReq, WxLoginAuth, RegisterOnWXRespCallback, UnregisterOnWXRespCallback, NavigateToMiniProgramOptions,
NavigateToMiniProgram, ShareToMiniProgram, ShareToMiniProgramOptions, GetPhoneInfoOptions, GetPhoneInfo, QuickLoginAuth,LoginAuthOptions,
CloseAuthPage,AliLoginAuth,OnAliLoginAuthCallback,GetQuickLoginAnonymousPhoneOptions,GetQuickLoginAnonymousPhone,
ScanQrCodeOptions,ScanQrCode
} from '../interface.uts';
import { updateManager } from '@kit.AppGalleryKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { Want, Permissions, common, AbilityConstant, bundleManager } from '@kit.AbilityKit';
import { checkPermissionsSync } from "./utils/PermissionUtils.ets";
import webview from '@ohos.web.webview';
import window from '@ohos.window';
/**** 一些功能型API START ****/
/**
- 检测APP更新
*/
export const checkAppUpdate : CheckAppUpdate = function (options : CheckAppUpdateOptions) {
try {
updateManager.checkAppUpdate(UTSHarmony.getUIAbilityContext())
.then((checkResult : updateManager.CheckUpdateResult) => {
console.log("Succeeded in checking Result updateAvailable:" + checkResult.updateAvailable)
options.success(checkResult.updateAvailable === 1)
console.log(checkAppUpdate res --->>>, checkResult.updateAvailable === 1);
if (checkResult.updateAvailable === 1) {
updateManager.showUpdateDialog(UTSHarmony.getUIAbilityContext())
.then((resultCode : updateManager.ShowUpdateResultCode) => {
console.log("Succeeded in showing UpdateDialog resultCode:" + resultCode)
hilog.info(0, 'TAG', "Succeeded in showing UpdateDialog resultCode:" + resultCode);
})
.catch((error : BusinessError) => {
console.log(showUpdateDialog onError.code is ${error.code}, message is ${error.message})
hilog.error(0, 'TAG', showUpdateDialog onError.code is ${error.code}, message is ${error.message});
});
}
hilog.info(0, 'TAG', "Succeeded in checking Result updateAvailable:" + checkResult.updateAvailable);
}).catch((error : BusinessError) => {
console.log(checkAppUpdate onError.code is ${error.code}, message is ${error.message});
hilog.error(0, 'TAG', checkAppUpdate onError.code is ${error.code}, message is ${error.message});
});
} catch (error) {
console.log(checkAppUpdate onError.code is ${error.code}, message is ${error.message});
hilog.error(0, 'TAG', checkAppUpdate onError.code is ${error.code}, message is ${error.message});
}
}
/**
-
打开权限设置页面
*/
export const openPermissionSetting : OpenPermissionSetting = function () {
let wantInfo : Want = {
bundleName: 'com.huawei.hmos.settings',
abilityName: 'com.huawei.hmos.settings.MainAbility',
uri: 'application_info_entry',
parameters: {
pushParams: 'com.onebuygz.hm'
}
}
UTSHarmony.getUIAbilityContext().startAbility(wantInfo).then(() => {
}).catch((err : BusinessError) => {
})
}
/**
- 检查权限
*/
export const checkPermissions : CheckPermissions = function (permissionList : string[]) {
return checkPermissionsSync(permissionList as Permissions[])
}
/**
- 清楚WebView缓存
*/
export const clearWebCache : ClearWebCache = function () {
console.log(clearWebCache);
webview.WebStorage.deleteAllData();
}
import {
scanQrCodeIml
} from './utils/HwScanKit.ets'
export {
ScanQrCodeOptions
}
export const scanQrCode : ScanQrCode = function (options : ScanQrCodeOptions) {
scanQrCodeIml(UTSHarmony.getCurrentWindow().getUIContext(),options.success, options.error)
}
/**** 一些功能型API END ****/
/**** 微信开放平台相关API START ****/
import {
shareToMiniProgramIml,
navigateToMiniProgramIml,
wxApiOnAppAbilityCreateIml,
wxApiOnAppAbilityNewWantIml,
wxLoginAuthIml,
unregisterOnWXRespCallbackIml,
registerOnWXRespCallbackIml,
} from './utils/WxApis.ets'
export {
NavigateToMiniProgram,
ShareToMiniProgramOptions,
OnWxResp
}
export const registerOnWXRespCallback : RegisterOnWXRespCallback = function (onWxResp : OnWxResp) {
console.log(registerOnWXRespCallback);
registerOnWXRespCallbackIml(onWxResp)
}
export const unregisterOnWXRespCallback : UnregisterOnWXRespCallback = function (onWxResp : OnWxResp) {
console.log(unregisterOnWXRespCallback);
unregisterOnWXRespCallbackIml(onWxResp)
}
/**
- 微信登录授权
*/
export const wxLoginAuth : WxLoginAuth = function () {
console.log(wxLoginAuth);
wxLoginAuthIml(UTSHarmony.getUIAbilityContext())
}
/**
- 打开小程序
*/
export const navigateToMiniProgram : NavigateToMiniProgram = function (options : NavigateToMiniProgramOptions) {
console.log(navigateToMiniProgram);
navigateToMiniProgramIml(UTSHarmony.getUIAbilityContext(), options.appId, options.path, options.envVersion)
}
/**
- 分享到微信 小程序卡片
*/
export const shareToMiniProgram : ShareToMiniProgram = function (options : ShareToMiniProgramOptions) {
console.log(navigateToMiniProgram);
shareToMiniProgramIml(UTSHarmony.getUIAbilityContext(), options.appId, options.path, options.title,
options.imageUrl, options.envVersion, options.description)
}
/**** 微信开放平台相关API END ****/
/**** 支付宝开放平台相关API START ****/
import {
aliLoginAuthIml,
aliApiOnAppAbilityNewWantIml
} from './utils/AlipayApis.ets'
export {
OnAliLoginAuthCallback
}
/**
- 支付宝登录授权
*/
export const aliLoginAuth : AliLoginAuth = function (callback:OnAliLoginAuthCallback) {
aliLoginAuthIml(callback)
}
/**** 支付宝开放平台相关API END ****/
/**** 个推推送以及通知相关API START ****/
import {
initializePushSdkIml,
setPushCallbackIml,
watchMessagePayloadIml,
gtApiOnAppAbilityCreateIml,
gtApiOnAppAbilityNewWantIml,
isNotificationEnabledSync,
requestEnableNotificationIml,
openNotificationSettingsIml,
} from './utils/GTPush.ets'
export {
InitializePushSdkOptions,
SetPushCallbackOptions,
CommonCallback,
BusinessErrorData,
WatchMessagePayloadOptions
}
export const initializePushSdk : InitializePushSdk = function (options : InitializePushSdkOptions) {
initializePushSdkIml(UTSHarmony.getUIAbilityContext(), options.appId, options.success, options.fail)
}
export const setPushCallback : SetPushCallback = function (options : SetPushCallbackOptions) {
setPushCallbackIml(options.onNotificationMessageClicked)
}
export const watchMessagePayload : WatchMessagePayload = function (options : WatchMessagePayloadOptions) {
setPushCallbackIml(options.onWatchMessagePayload)
}
export const isNotificationEnabled : IsNotificationEnabled = function () {
return isNotificationEnabledSync()
}
export const requestEnableNotification : RequestEnableNotification = function (options : CommonCallback) {
requestEnableNotificationIml(UTSHarmony.getUIAbilityContext(), (code : number, msg : string) => {
if (code === 200) {
options.success()
} else {
options.success({ code: code, msg: msg })
}
})
}
export const openNotificationSettings : OpenNotificationSettings = function (options : CommonCallback) {
openNotificationSettingsIml(UTSHarmony.getUIAbilityContext(), (code : number, msg : string) => {
if (code === 200) {
options.success()
} else {
options.success({ code: code, msg: msg })
}
})
}
/**** 个推推送以及通知相关API END ****/
/**** 一键登录相关API START ****/
import {
getPhoneInfoIml,
quickLoginAuthIml,
closeAuthPageIml
} from './utils/QuickLogin.ets'
export {
GetPhoneInfoOptions
}
export const getPhoneInfo : GetPhoneInfo = function (options : GetPhoneInfoOptions) {
getPhoneInfoIml(UTSHarmony.getUIAbilityContext(), options.appId, options.appKey, options.success)
}
export const quickLoginAuth : QuickLoginAuth = function (options : LoginAuthOptions) {
quickLoginAuthIml(UTSHarmony.getUIAbilityContext(), UTSHarmony.getCurrentWindow().getUIContext(),
options.appId, options.appKey, options.success,options.backClick,options.otherLoginClick,options.wxLoginClick,options.zfbLoginClick)
}
export const closeAuthPage : CloseAuthPage = function () {
closeAuthPageIml(UTSHarmony.getUIAbilityContext(),UTSHarmony.getCurrentWindow().getUIContext())
}
/**** 一键登录相关API END ****/
/**** 华为一键登录相关API START ****/
import {
getQuickLoginAnonymousPhoneIml
} from './utils/HwQuickLogin.ets'
export {
GetQuickLoginAnonymousPhoneOptions
}
export const getQuickLoginAnonymousPhone : GetQuickLoginAnonymousPhone = function (options : GetQuickLoginAnonymousPhoneOptions) {
getQuickLoginAnonymousPhoneIml(options.success, options.fail)
}
/**** 华为一键登录相关API END ****/
UTSHarmony.onAppAbilityCreate((want : Want, launchParam : AbilityConstant.LaunchParam) => {
//实现微信跳转回APP的回调
wxApiOnAppAbilityCreateIml(want, launchParam)
//个推回调
gtApiOnAppAbilityCreateIml(want, launchParam)
});
UTSHarmony.onAppAbilityNewWant((want : Want, launchParam : AbilityConstant.LaunchParam) => {
//实现微信跳转回APP的回调
wxApiOnAppAbilityNewWantIml(want, launchParam)
//支付宝回调处理
aliApiOnAppAbilityNewWantIml(want, launchParam)
//个推回调
gtApiOnAppAbilityNewWantIml(want, launchParam)
});
/**** 地图API START ****/
import { sceneMap } from '@kit.MapKit';
export function chooseLocation (options:sceneMap.LocationChoosingOptions={
searchEnabled: true,
showNearbyPoi: true
}){
return sceneMap.chooseLocation(UTSHarmony.getUIAbilityContext(), options)
}
/**** 地图API END ****/
4 个回复
Ask小助手
好的,收到你的 Bug 反馈。作为 DCloud 官方人员,我对这个反馈进行如下评审和分析:
1. 反馈质量评审
这个 Bug 反馈的整体结构比较清晰,但存在几个关键信息缺失,需要补充后我们才能进行有效的排查。
import语句,缺少了 UTS 插件(@/uni_modules/onebuy-api-sdk)内部的导出代码(如index.uts文件内容)以及package.json配置。没有这些,我们无法判断是导出方式有误、插件配置问题,还是编译器问题。评审结论:反馈有效,但信息不足以定位根因。请补充 UTS 插件源码、完整的复现步骤、具体版本号,最好能附上可复现的示例工程。
2. 问题分析与排查
根据反馈内容和知识库,这类“升级依赖后 UTS 插件导出函数变为 undefined”的问题,在社区中有过类似讨论,通常与以下几个因素有关:
npx @dcloudio/uvm@latest升级依赖后,可能会因为鸿蒙相关依赖包(如@dcloudio/uni-app-harmony)版本与当前 HBuilderX 版本不匹配,导致 UTS 编译产物异常。参考历史对话:【报Bug】鸿蒙本地正式打包不正常 中官方人员提到,CLI 项目需要关注并升级鸿蒙依赖版本。@UTSJS.keepAlive装饰器或注意on开头的函数命名规范。请检查插件源码中的export写法是否符合 UTS插件介绍 的要求。3. 解决方案与建议
在补充信息的同时,建议你按以下步骤尝试排查和修复:
清理缓存并重新编译:
在 HBuilderX 中运行到鸿蒙时,在设备选择对话框里,勾选“清空缓存”选项,然后重新编译运行。这是解决因升级导致缓存错乱最有效的方法。
核对 HBuilderX 与依赖版本:
package.json中@dcloudio/uni-app-harmony等依赖包是否已正确升级到与 HBuilderX 匹配的版本。检查 UTS 插件导出代码:
确保在
index.uts中正确使用了export关键字导出函数。例如:提供复现工程:
如果上述步骤均无法解决,这很可能是一个由特定插件结构或版本升级触发的兼容性 Bug。请将你的项目(可脱敏处理后)通过 issues 系统或私聊提供给官方人员,我们将进行深入排查。
1***@163.com (作者)
/**
*/
/ 引入 interface.uts 文件中定义的变量 /
import {
CheckAppUpdate, OpenPermissionSetting, CheckPermissions, ClearWebCache, CheckAppUpdateOptions,
InitializePushSdkOptions, InitializePushSdk, IsNotificationEnabled, BusinessErrorData, CommonCallback,
RequestEnableNotification, OpenNotificationSettings, SetPushCallbackOptions, SetPushCallback, WatchMessagePayloadOptions, WatchMessagePayload,
OnWxResp, OnWxReq, WxLoginAuth, RegisterOnWXRespCallback, UnregisterOnWXRespCallback, NavigateToMiniProgramOptions,
NavigateToMiniProgram, ShareToMiniProgram, ShareToMiniProgramOptions, GetPhoneInfoOptions, GetPhoneInfo, QuickLoginAuth,LoginAuthOptions,
CloseAuthPage,AliLoginAuth,OnAliLoginAuthCallback,GetQuickLoginAnonymousPhoneOptions,GetQuickLoginAnonymousPhone,
ScanQrCodeOptions,ScanQrCode
} from '../interface.uts';
import { updateManager } from '@kit.AppGalleryKit';
import { hilog } from '@kit.PerformanceAnalysisKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { Want, Permissions, common, AbilityConstant, bundleManager } from '@kit.AbilityKit';
import { checkPermissionsSync } from "./utils/PermissionUtils.ets";
import webview from '@ohos.web.webview';
import window from '@ohos.window';
/**** 一些功能型API START ****/
/**
*/
export const checkAppUpdate : CheckAppUpdate = function (options : CheckAppUpdateOptions) {
try {
updateManager.checkAppUpdate(UTSHarmony.getUIAbilityContext())
.then((checkResult : updateManager.CheckUpdateResult) => {
console.log("Succeeded in checking Result updateAvailable:" + checkResult.updateAvailable)
options.success(checkResult.updateAvailable === 1)
console.log(
checkAppUpdate res --->>>, checkResult.updateAvailable === 1);if (checkResult.updateAvailable === 1) {
updateManager.showUpdateDialog(UTSHarmony.getUIAbilityContext())
.then((resultCode : updateManager.ShowUpdateResultCode) => {
console.log("Succeeded in showing UpdateDialog resultCode:" + resultCode)
hilog.info(0, 'TAG', "Succeeded in showing UpdateDialog resultCode:" + resultCode);
})
.catch((error : BusinessError) => {
console.log(
showUpdateDialog onError.code is ${error.code}, message is ${error.message})hilog.error(0, 'TAG',
showUpdateDialog onError.code is ${error.code}, message is ${error.message});});
}
hilog.info(0, 'TAG', "Succeeded in checking Result updateAvailable:" + checkResult.updateAvailable);
}).catch((error : BusinessError) => {
console.log(
checkAppUpdate onError.code is ${error.code}, message is ${error.message});hilog.error(0, 'TAG',
checkAppUpdate onError.code is ${error.code}, message is ${error.message});});
} catch (error) {
console.log(
checkAppUpdate onError.code is ${error.code}, message is ${error.message});hilog.error(0, 'TAG',
checkAppUpdate onError.code is ${error.code}, message is ${error.message});}
}
/**
打开权限设置页面
*/
export const openPermissionSetting : OpenPermissionSetting = function () {
let wantInfo : Want = {
bundleName: 'com.huawei.hmos.settings',
abilityName: 'com.huawei.hmos.settings.MainAbility',
uri: 'application_info_entry',
parameters: {
pushParams: 'com.onebuygz.hm'
}
}
UTSHarmony.getUIAbilityContext().startAbility(wantInfo).then(() => {
}).catch((err : BusinessError) => {
})
}
/**
*/
export const checkPermissions : CheckPermissions = function (permissionList : string[]) {
return checkPermissionsSync(permissionList as Permissions[])
}
/**
*/
export const clearWebCache : ClearWebCache = function () {
console.log(
clearWebCache);webview.WebStorage.deleteAllData();
}
import {
scanQrCodeIml
} from './utils/HwScanKit.ets'
export {
ScanQrCodeOptions
}
export const scanQrCode : ScanQrCode = function (options : ScanQrCodeOptions) {
scanQrCodeIml(UTSHarmony.getCurrentWindow().getUIContext(),options.success, options.error)
}
/**** 一些功能型API END ****/
/**** 微信开放平台相关API START ****/
import {
shareToMiniProgramIml,
navigateToMiniProgramIml,
wxApiOnAppAbilityCreateIml,
wxApiOnAppAbilityNewWantIml,
wxLoginAuthIml,
unregisterOnWXRespCallbackIml,
registerOnWXRespCallbackIml,
} from './utils/WxApis.ets'
export {
NavigateToMiniProgram,
ShareToMiniProgramOptions,
OnWxResp
}
export const registerOnWXRespCallback : RegisterOnWXRespCallback = function (onWxResp : OnWxResp) {
console.log(
registerOnWXRespCallback);registerOnWXRespCallbackIml(onWxResp)
}
export const unregisterOnWXRespCallback : UnregisterOnWXRespCallback = function (onWxResp : OnWxResp) {
console.log(
unregisterOnWXRespCallback);unregisterOnWXRespCallbackIml(onWxResp)
}
/**
*/
export const wxLoginAuth : WxLoginAuth = function () {
console.log(
wxLoginAuth);wxLoginAuthIml(UTSHarmony.getUIAbilityContext())
}
/**
*/
export const navigateToMiniProgram : NavigateToMiniProgram = function (options : NavigateToMiniProgramOptions) {
console.log(
navigateToMiniProgram);navigateToMiniProgramIml(UTSHarmony.getUIAbilityContext(), options.appId, options.path, options.envVersion)
}
/**
*/
export const shareToMiniProgram : ShareToMiniProgram = function (options : ShareToMiniProgramOptions) {
console.log(
navigateToMiniProgram);shareToMiniProgramIml(UTSHarmony.getUIAbilityContext(), options.appId, options.path, options.title,
options.imageUrl, options.envVersion, options.description)
}
/**** 微信开放平台相关API END ****/
/**** 支付宝开放平台相关API START ****/
import {
aliLoginAuthIml,
aliApiOnAppAbilityNewWantIml
} from './utils/AlipayApis.ets'
export {
OnAliLoginAuthCallback
}
/**
*/
export const aliLoginAuth : AliLoginAuth = function (callback:OnAliLoginAuthCallback) {
aliLoginAuthIml(callback)
}
/**** 支付宝开放平台相关API END ****/
/**** 个推推送以及通知相关API START ****/
import {
initializePushSdkIml,
setPushCallbackIml,
watchMessagePayloadIml,
gtApiOnAppAbilityCreateIml,
gtApiOnAppAbilityNewWantIml,
isNotificationEnabledSync,
requestEnableNotificationIml,
openNotificationSettingsIml,
} from './utils/GTPush.ets'
export {
InitializePushSdkOptions,
SetPushCallbackOptions,
CommonCallback,
BusinessErrorData,
WatchMessagePayloadOptions
}
export const initializePushSdk : InitializePushSdk = function (options : InitializePushSdkOptions) {
initializePushSdkIml(UTSHarmony.getUIAbilityContext(), options.appId, options.success, options.fail)
}
export const setPushCallback : SetPushCallback = function (options : SetPushCallbackOptions) {
setPushCallbackIml(options.onNotificationMessageClicked)
}
export const watchMessagePayload : WatchMessagePayload = function (options : WatchMessagePayloadOptions) {
setPushCallbackIml(options.onWatchMessagePayload)
}
export const isNotificationEnabled : IsNotificationEnabled = function () {
return isNotificationEnabledSync()
}
export const requestEnableNotification : RequestEnableNotification = function (options : CommonCallback) {
requestEnableNotificationIml(UTSHarmony.getUIAbilityContext(), (code : number, msg : string) => {
if (code === 200) {
options.success()
} else {
options.success({ code: code, msg: msg })
}
})
}
export const openNotificationSettings : OpenNotificationSettings = function (options : CommonCallback) {
openNotificationSettingsIml(UTSHarmony.getUIAbilityContext(), (code : number, msg : string) => {
if (code === 200) {
options.success()
} else {
options.success({ code: code, msg: msg })
}
})
}
/**** 个推推送以及通知相关API END ****/
/**** 一键登录相关API START ****/
import {
getPhoneInfoIml,
quickLoginAuthIml,
closeAuthPageIml
} from './utils/QuickLogin.ets'
export {
GetPhoneInfoOptions
}
export const getPhoneInfo : GetPhoneInfo = function (options : GetPhoneInfoOptions) {
getPhoneInfoIml(UTSHarmony.getUIAbilityContext(), options.appId, options.appKey, options.success)
}
export const quickLoginAuth : QuickLoginAuth = function (options : LoginAuthOptions) {
quickLoginAuthIml(UTSHarmony.getUIAbilityContext(), UTSHarmony.getCurrentWindow().getUIContext(),
options.appId, options.appKey, options.success,options.backClick,options.otherLoginClick,options.wxLoginClick,options.zfbLoginClick)
}
export const closeAuthPage : CloseAuthPage = function () {
closeAuthPageIml(UTSHarmony.getUIAbilityContext(),UTSHarmony.getCurrentWindow().getUIContext())
}
/**** 一键登录相关API END ****/
/**** 华为一键登录相关API START ****/
import {
getQuickLoginAnonymousPhoneIml
} from './utils/HwQuickLogin.ets'
export {
GetQuickLoginAnonymousPhoneOptions
}
export const getQuickLoginAnonymousPhone : GetQuickLoginAnonymousPhone = function (options : GetQuickLoginAnonymousPhoneOptions) {
getQuickLoginAnonymousPhoneIml(options.success, options.fail)
}
/**** 华为一键登录相关API END ****/
UTSHarmony.onAppAbilityCreate((want : Want, launchParam : AbilityConstant.LaunchParam) => {
//实现微信跳转回APP的回调
wxApiOnAppAbilityCreateIml(want, launchParam)
//个推回调
gtApiOnAppAbilityCreateIml(want, launchParam)
});
UTSHarmony.onAppAbilityNewWant((want : Want, launchParam : AbilityConstant.LaunchParam) => {
//实现微信跳转回APP的回调
wxApiOnAppAbilityNewWantIml(want, launchParam)
//支付宝回调处理
aliApiOnAppAbilityNewWantIml(want, launchParam)
//个推回调
gtApiOnAppAbilityNewWantIml(want, launchParam)
});
/**** 地图API START ****/
import { sceneMap } from '@kit.MapKit';
export function chooseLocation (options:sceneMap.LocationChoosingOptions={
searchEnabled: true,
showNearbyPoi: true
}){
return sceneMap.chooseLocation(UTSHarmony.getUIAbilityContext(), options)
}
/**** 地图API END ****/
1***@163.com (作者)
[UniAppRuntime][23378] JT:NAPICallback run failed: OH_JSVM_CallFunction failed TypeError: Cannot read properties of undefined (reading 'initializePushSdk')
at initPushSdk (app-service.js:6:82880)
at app-service.js:6:91624
at Object.install (app-service.js:6:91662)
at Object.use (noname_6.js:6706:21)
at app-service.js:23:917086
at app-service.js:23:917141
at app-service.js:23:917289
1***@163.com (作者)
dist/app-harmony/uni_modules/onebuy-api-sdk/utssdk/app-harmoney/index.ets
import webview from '@ohos.web.webview';
import { BusinessError } from '@kit.BasicServicesKit';
import { UTSObject, UTSHarmony, UTS } from "@dcloudio/uni-app-runtime";
import { Want, Permissions, AbilityConstant } from '@kit.AbilityKit';
import { aliLoginAuthIml, aliApiOnAppAbilityNewWantIml } from "./utils/AlipayApis";
import { checkPermissionsSync } from "./utils/PermissionUtils";
import { getPhoneInfoIml, quickLoginAuthIml, closeAuthPageIml } from "./utils/QuickLogin";
import { getQuickLoginAnonymousPhoneIml } from "./utils/HwQuickLogin";
import { hilog } from '@kit.PerformanceAnalysisKit';
import { initializePushSdkIml, setPushCallbackIml, gtApiOnAppAbilityCreateIml, gtApiOnAppAbilityNewWantIml, isNotificationEnabledSync, requestEnableNotificationIml, openNotificationSettingsIml } from "./utils/GTPush";
import { scanQrCodeIml } from "./utils/HwScanKit";
import { sceneMap } from '@kit.MapKit';
import { shareToMiniProgramIml, navigateToMiniProgramIml, wxApiOnAppAbilityCreateIml, wxApiOnAppAbilityNewWantIml, wxLoginAuthIml, unregisterOnWXRespCallbackIml, registerOnWXRespCallbackIml } from "./utils/WxApis";
import { updateManager } from '@kit.AppGalleryKit';
class CheckAppUpdateOptions extends UTSObject {
success!: (res: boolean) => void;
}
type CheckAppUpdate = (options: CheckAppUpdateOptions) => void;
type OpenPermissionSetting = () => void;
type CheckPermissions = (permissionList: string[]) => boolean;
type ClearWebCache = () => void;
type OnWxResp = (resp: string) => void;
type WxLoginAuth = () => void;
type RegisterOnWXRespCallback = (onWxResp: OnWxResp) => void;
type UnregisterOnWXRespCallback = (onWxResp: OnWxResp) => void;
interface NavigateToMiniProgramOptions {
appId: string;
path?: string;
envVersion?: 0 | 1 | 2;
}
type NavigateToMiniProgram = (options: NavigateToMiniProgramOptions) => void;
type ShareToMiniProgram = (options: ShareToMiniProgramOptions) => void;
interface ShareToMiniProgramOptions {
appId: string;
path: string;
title: string;
imageUrl: string;
envVersion: 0 | 1 | 2;
description?: string;
}
type OnAliLoginAuthCallback = (res: string) => void;
type AliLoginAuth = (callback: OnAliLoginAuthCallback) => void;
class InitializePushSdkOptions extends UTSObject {
appId!: string;
success!: (cid: string) => void;
fail!: (error: string) => void;
}
type InitializePushSdk = (options: InitializePushSdkOptions) => void;
type IsNotificationEnabled = () => boolean;
class BusinessErrorData extends UTSObject {
code!: number;
msg!: string;
}
class CommonCallback extends UTSObject {
success!: (err?: BusinessErrorData) => void;
}
type RequestEnableNotification = (options: CommonCallback) => void;
type OpenNotificationSettings = (options: CommonCallback) => void;
class SetPushCallbackOptions extends UTSObject {
onNotificationMessageClicked!: (payload: string) => void;
}
type SetPushCallback = (options: SetPushCallbackOptions) => void;
class WatchMessagePayloadOptions extends UTSObject {
onWatchMessagePayload!: (payload: string) => void;
}
type WatchMessagePayload = (options: WatchMessagePayloadOptions) => void;
class GetPhoneInfoOptions extends UTSObject {
appId!: string;
appKey!: string;
success!: (dataJson: string) => void;
}
class LoginAuthOptions extends UTSObject {
appId!: string;
appKey!: string;
success!: (dataJson: string) => void;
backClick!: () => void;
otherLoginClick!: () => void;
wxLoginClick!: () => void;
zfbLoginClick!: () => void;
}
type GetPhoneInfo = (options: GetPhoneInfoOptions) => void;
type QuickLoginAuth = (options: LoginAuthOptions) => void;
type CloseAuthPage = () => void;
class GetQuickLoginAnonymousPhoneOptions extends UTSObject {
success!: (dataJson: string) => void;
fail!: (errorCode: number) => void;
}
type GetQuickLoginAnonymousPhone = (options: GetQuickLoginAnonymousPhoneOptions) => void;
class ScanQrCodeOptions extends UTSObject {
success!: (code: string) => void;
error!: (code: number, msg: string) => void;
}
type ScanQrCode = (options: ScanQrCodeOptions) => void;
const checkAppUpdate: CheckAppUpdate = (options: CheckAppUpdateOptions)=>{
try {
updateManager.checkAppUpdate(UTSHarmony.getUIAbilityContext()).then((checkResult: updateManager.CheckUpdateResult)=>{
UTS.console.log("Succeeded in checking Result updateAvailable:" + checkResult.updateAvailable, " at uni_modules/onebuy-api-sdk/utssdk/app-harmony/index.uts:37");
options.success(checkResult.updateAvailable === 1);
UTS.console.log(
checkAppUpdate res --->>>, checkResult.updateAvailable === 1, " at uni_modules/onebuy-api-sdk/utssdk/app-harmony/index.uts:39");if (checkResult.updateAvailable === 1) {
updateManager.showUpdateDialog(UTSHarmony.getUIAbilityContext()).then((resultCode: updateManager.ShowUpdateResultCode)=>{
UTS.console.log("Succeeded in showing UpdateDialog resultCode:" + resultCode, " at uni_modules/onebuy-api-sdk/utssdk/app-harmony/index.uts:43");
hilog.info(0, 'TAG', "Succeeded in showing UpdateDialog resultCode:" + resultCode);
}).catch((error: BusinessError)=>{
UTS.console.log(
showUpdateDialog onError.code is ${error.code}, message is ${error.message}, " at uni_modules/onebuy-api-sdk/utssdk/app-harmony/index.uts:47");hilog.error(0, 'TAG',
showUpdateDialog onError.code is ${error.code}, message is ${error.message});});
}
hilog.info(0, 'TAG', "Succeeded in checking Result updateAvailable:" + checkResult.updateAvailable);
}).catch((error: BusinessError)=>{
UTS.console.log(
checkAppUpdate onError.code is ${error.code}, message is ${error.message}, " at uni_modules/onebuy-api-sdk/utssdk/app-harmony/index.uts:53");hilog.error(0, 'TAG',
checkAppUpdate onError.code is ${error.code}, message is ${error.message});});
} catch (error) {
UTS.console.log(
checkAppUpdate onError.code is ${error.code}, message is ${error.message}, " at uni_modules/onebuy-api-sdk/utssdk/app-harmony/index.uts:57");hilog.error(0, 'TAG',
checkAppUpdate onError.code is ${error.code}, message is ${error.message});}
};
const openPermissionSetting: OpenPermissionSetting = ()=>{
let wantInfo: Want = {
bundleName: 'com.huawei.hmos.settings',
abilityName: 'com.huawei.hmos.settings.MainAbility',
uri: 'application_info_entry',
parameters: {
pushParams: 'com.onebuygz.hm'
}
};
UTSHarmony.getUIAbilityContext().startAbility(wantInfo).then(()=>{}).catch((err: BusinessError)=>{});
};
const checkPermissions: CheckPermissions = (permissionList: string[]): boolean =>{
return checkPermissionsSync(permissionList as Permissions[]);
};
const clearWebCache: ClearWebCache = ()=>{
UTS.console.log(
clearWebCache, " at uni_modules/onebuy-api-sdk/utssdk/app-harmony/index.uts:91");webview.WebStorage.deleteAllData();
};
export { ScanQrCodeOptions as ScanQrCodeOptions };
const scanQrCode: ScanQrCode = (options: ScanQrCodeOptions)=>{
scanQrCodeIml(UTSHarmony.getCurrentWindow().getUIContext(), options.success, options.error);
};
export { NavigateToMiniProgram as NavigateToMiniProgram, ShareToMiniProgramOptions as ShareToMiniProgramOptions, OnWxResp as OnWxResp };
const registerOnWXRespCallback: RegisterOnWXRespCallback = (onWxResp: OnWxResp)=>{
UTS.console.log(
registerOnWXRespCallback, " at uni_modules/onebuy-api-sdk/utssdk/app-harmony/index.uts:126");registerOnWXRespCallbackIml(onWxResp);
};
const unregisterOnWXRespCallback: UnregisterOnWXRespCallback = (onWxResp: OnWxResp)=>{
UTS.console.log(
unregisterOnWXRespCallback, " at uni_modules/onebuy-api-sdk/utssdk/app-harmony/index.uts:131");unregisterOnWXRespCallbackIml(onWxResp);
};
const wxLoginAuth: WxLoginAuth = ()=>{
UTS.console.log(
wxLoginAuth, " at uni_modules/onebuy-api-sdk/utssdk/app-harmony/index.uts:138");wxLoginAuthIml(UTSHarmony.getUIAbilityContext());
};
const navigateToMiniProgram: NavigateToMiniProgram = (options: NavigateToMiniProgramOptions)=>{
UTS.console.log(
navigateToMiniProgram, " at uni_modules/onebuy-api-sdk/utssdk/app-harmony/index.uts:146");navigateToMiniProgramIml(UTSHarmony.getUIAbilityContext(), options.appId, options.path, options.envVersion);
};
const shareToMiniProgram: ShareToMiniProgram = (options: ShareToMiniProgramOptions)=>{
UTS.console.log(
navigateToMiniProgram, " at uni_modules/onebuy-api-sdk/utssdk/app-harmony/index.uts:154");shareToMiniProgramIml(UTSHarmony.getUIAbilityContext(), options.appId, options.path, options.title, options.imageUrl, options.envVersion, options.description);
};
export { OnAliLoginAuthCallback as OnAliLoginAuthCallback };
const aliLoginAuth: AliLoginAuth = (callback: OnAliLoginAuthCallback)=>{
aliLoginAuthIml(callback);
};
export { InitializePushSdkOptions as InitializePushSdkOptions, SetPushCallbackOptions as SetPushCallbackOptions, CommonCallback as CommonCallback, BusinessErrorData as BusinessErrorData, WatchMessagePayloadOptions as WatchMessagePayloadOptions };
const initializePushSdk: InitializePushSdk = (options: InitializePushSdkOptions)=>{
initializePushSdkIml(UTSHarmony.getUIAbilityContext(), options.appId, options.success, options.fail);
};
const setPushCallback: SetPushCallback = (options: SetPushCallbackOptions)=>{
setPushCallbackIml(options.onNotificationMessageClicked);
};
const watchMessagePayload: WatchMessagePayload = (options: WatchMessagePayloadOptions)=>{
setPushCallbackIml(options.onWatchMessagePayload);
};
const isNotificationEnabled: IsNotificationEnabled = (): boolean =>{
return isNotificationEnabledSync();
};
const requestEnableNotification: RequestEnableNotification = (options: CommonCallback)=>{
requestEnableNotificationIml(UTSHarmony.getUIAbilityContext(), (code: number, msg: string)=>{
if (code === 200) {
options.success();
} else {
options.success({
code: code,
msg: msg
} as BusinessErrorData);
}
});
};
const openNotificationSettings: OpenNotificationSettings = (options: CommonCallback)=>{
openNotificationSettingsIml(UTSHarmony.getUIAbilityContext(), (code: number, msg: string)=>{
if (code === 200) {
options.success();
} else {
options.success({
code: code,
msg: msg
} as BusinessErrorData);
}
});
};
export { GetPhoneInfoOptions as GetPhoneInfoOptions };
const getPhoneInfo: GetPhoneInfo = (options: GetPhoneInfoOptions)=>{
getPhoneInfoIml(UTSHarmony.getUIAbilityContext(), options.appId, options.appKey, options.success);
};
const quickLoginAuth: QuickLoginAuth = (options: LoginAuthOptions)=>{
quickLoginAuthIml(UTSHarmony.getUIAbilityContext(), UTSHarmony.getCurrentWindow().getUIContext(), options.appId, options.appKey, options.success, options.backClick, options.otherLoginClick, options.wxLoginClick, options.zfbLoginClick);
};
const closeAuthPage: CloseAuthPage = ()=>{
closeAuthPageIml(UTSHarmony.getUIAbilityContext(), UTSHarmony.getCurrentWindow().getUIContext());
};
export { GetQuickLoginAnonymousPhoneOptions as GetQuickLoginAnonymousPhoneOptions };
const getQuickLoginAnonymousPhone: GetQuickLoginAnonymousPhone = (options: GetQuickLoginAnonymousPhoneOptions)=>{
getQuickLoginAnonymousPhoneIml(options.success, options.fail);
};
UTSHarmony.onAppAbilityCreate((want: Want, launchParam: AbilityConstant.LaunchParam)=>{
wxApiOnAppAbilityCreateIml(want, launchParam);
gtApiOnAppAbilityCreateIml(want, launchParam);
});
UTSHarmony.onAppAbilityNewWant((want: Want, launchParam: AbilityConstant.LaunchParam)=>{
wxApiOnAppAbilityNewWantIml(want, launchParam);
aliApiOnAppAbilityNewWantIml(want, launchParam);
gtApiOnAppAbilityNewWantIml(want, launchParam);
});
function chooseLocation(options: sceneMap.LocationChoosingOptions = {
searchEnabled: true,
showNearbyPoi: true
}) {
return sceneMap.chooseLocation(UTSHarmony.getUIAbilityContext(), options);
}
export { checkAppUpdate as checkAppUpdate };
export { openPermissionSetting as openPermissionSetting };
export { checkPermissions as checkPermissions };
export { clearWebCache as clearWebCache };
export { scanQrCode as scanQrCode };
export { registerOnWXRespCallback as registerOnWXRespCallback };
export { unregisterOnWXRespCallback as unregisterOnWXRespCallback };
export { wxLoginAuth as wxLoginAuth };
export { navigateToMiniProgram as navigateToMiniProgram };
export { shareToMiniProgram as shareToMiniProgram };
export { aliLoginAuth as aliLoginAuth };
export { initializePushSdk as initializePushSdk };
export { setPushCallback as setPushCallback };
export { watchMessagePayload as watchMessagePayload };
export { isNotificationEnabled as isNotificationEnabled };
export { requestEnableNotification as requestEnableNotification };
export { openNotificationSettings as openNotificationSettings };
export { getPhoneInfo as getPhoneInfo };
export { quickLoginAuth as quickLoginAuth };
export { closeAuthPage as closeAuthPage };
export { getQuickLoginAnonymousPhone as getQuickLoginAnonymousPhone };
export { chooseLocation as chooseLocation };
要回复问题请先登录或注册
公告
更多>相关问题