uni-app编译成鸿蒙后使用@pura/harmony-utils插件拉起短信手机号码带不过来同样代码原生可以带过去
uni-app编译成鸿蒙后使用@pura/harmony-utils插件拉起短信手机号码带不过来同样代码原生可以带过去
开发环境 | 版本号 | 项目创建方式 |
---|---|---|
Windows | win11 | HBuilderX |
产品分类:uniapp/App
PC开发环境操作系统:Windows
PC开发环境操作系统版本号:win11
HBuilderX类型:正式
HBuilderX版本号:4.51
手机系统:HarmonyOS NEXT
手机系统版本号:HarmonyOS NEXT Developer Preview
手机厂商:华为
手机机型:mate 60 pro
页面类型:vue
vue版本:vue3
打包方式:云端
示例代码:
import { DeviceUtil, AppUtil, NotificationUtil, WantUtil, ToastUtil } from '[@pura](/user/pura)/harmony-utils';
// 打开短信
export function openHmMMS (phone: string, name: string) : void {
console.log('打开的短信号码--------------------------->:', phone, name)
WantUtil.startMMS("13909626520", "张三").then(() => {
ToastUtil.showToast("拉起短信界面…")
}).catch((err: BusinessError) => {
console.log(JSON.stringify(err));
ToastUtil.showToast("拉起失败!");
});
}
import { FileUtil, LogUtil, ToastUtil, WantUtil } from '[@pura](/user/pura)/harmony-utils';
import { BusinessError } from '@kit.BasicServicesKit';
@Entry
@Component
struct Index {
@State message: string = 'Hello World';
build() {
RelativeContainer() {
Button("startMMS()")
.btnStyle()
.onClick(() => {
WantUtil.startMMS("13909626520", "张三").then(() => {
ToastUtil.showToast("拉起短信界面…")
}).catch((err: BusinessError) => {
LogUtil.error(JSON.stringify(err));
ToastUtil.showToast("拉起失败!");
});
})
}
.height('100%')
.width('100%')
}
}
@Styles
function btnStyle() {
.width('90%')
.margin({ top: 10, bottom: 5 })
}
操作步骤:
点击按钮,打开短信APP,默认填上手机号码
预期结果:
点击按钮,打开短信APP,默认填上手机号码
实际结果:
uts插件开发后,打开手机号带不上去,鸿蒙原生可以带上去
bug描述:
uniapp编译成鸿蒙后,使用@pura/harmony-utils插件拉起短信,手机号码带不过来,同样代码原生可以带过去
更多关于uni-app编译成鸿蒙后使用@pura/harmony-utils插件拉起短信手机号码带不过来同样代码原生可以带过去的实战教程也可以访问 https://www.itying.com/category-93-b0.html
你好,你可以检查一下,引入的三方包,是否正确引入了
更多关于uni-app编译成鸿蒙后使用@pura/harmony-utils插件拉起短信手机号码带不过来同样代码原生可以带过去的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
之前用鸿蒙的api,也是可以调起短信,手机号码没带过去……
还用这个包做了别的功能哩,别的功能跑着没问题
回复 19302com: 也是uts里面写的
回复 19302com: 手机号码带不过去是什么意思,传递参数吗?
回复 DCloud_UNI_yuhe: 这个不能加附件,我回复到下面了
就是正常打开短信后,把电话号码直接添加上;鸿蒙原生可以,但是uts做的是空的
uts 插件正常来说是和鸿蒙上调用是一样的,你这里可能是类型等问题导致,你可以把 uniapp 项目中的 unpackage/debug/app-harmony 这个文件夹导入 deveco 中,查看是否有相关问题
回复 DCloud_UNI_yuhe: 大佬,我试了下,直接把unpackage/debug/app-harmony 拿到鸿蒙编辑器,用按个编辑器运行entry,一样哩,手机号也是空
根据问题描述,这是uni-app编译鸿蒙后使用@pura/harmony-utils插件时出现的兼容性问题。以下是关键分析点:
- 原生鸿蒙代码能正常传递手机号,说明@pura/harmony-utils本身功能正常
- uni-app编译后的代码可能对参数传递处理存在差异
建议检查:
- 确保编译后的HarmonyOS工程中正确包含了@pura/harmony-utils依赖
- 查看编译后的WantUtil.startMMS调用参数是否被正确保留
- 检查uni-app到鸿蒙的UTS转换层是否存在参数处理问题
临时解决方案:
- 尝试直接调用鸿蒙原生API:
import ability from '[@ohos](/user/ohos).app.ability.UIAbility'
const want = {
bundleName: 'com.android.mms',
abilityName: 'com.android.mms.ui.ConversationList',
parameters: {
phone: '13909626520',
name: '张三'
}
}
ability.startAbility(want)