在调用接口页面的<script>部分增加如下配置。
import pkg from '@system.package'
或
var pkg = require("@system.package") 接口 | 描述 |
|---|---|
检测应用是否存在。支持检测原生应用和快应用是否已安装。快应用只有在桌面有图标,才被视为已安装。 | |
安装原生应用,跳转到应用市场的安装详情页面,不检测应用最终是否安装成功。 | |
获取应用版本号、版本名称信息。 | |
获取应用签名摘要信息。 |
描述
检测应用是否存在。支持检测原生应用和快应用是否已安装。快应用只有在桌面有图标,才被视为已安装。
OBJECT参数
参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
package | string | 是 | 应用包名。 |
success | function | 否 | 成功回调。 |
fail | function | 否 | 失败回调。 |
complete | function | 否 | 执行结束后的回调。 |
success返回值:
参数名 | 类型 | 说明 |
|---|---|---|
result | boolean | 应用是否存在。 |
示例代码
pkg.hasInstalled({
package: 'com.hap.app',
success: function(data) {
console.log("handling success: " + data.result);
},
fail: function(data, code) {
console.log("handling fail, code=" + code);
}
}) 描述
安装原生应用,跳转到应用市场的安装详情页面,不检测应用最终是否安装成功。
OBJECT参数
参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
package | string | 是 | 应用包名。 |
success | function | 否 | 成功回调。 |
fail | function | 否 | 失败回调。 |
complete | function | 否 | 执行结束后的回调。 |
success返回值:
参数名 | 类型 | 说明 |
|---|---|---|
result | boolean | 是否有进入到应用市场的应用安装详情界面。 |
示例代码
pkg.install({
package: 'com.hap.app',
success: function(data) {
console.log("handling success: " + data.result);
},
fail: function(data, code) {
console.log("handling fail, code=" + code);
}
}) 描述
获取应用版本号、版本名称信息,包括原生应用和快应用。
卡片场景仅支持获取已安装的原生应用信息,不支持获取快应用信息。
OBJECT参数
参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
package | string | 是 | 应用包名。 |
success | function | 否 | 成功回调。 |
fail | function | 否 | 失败回调。 |
complete | function | 否 | 执行结束后的回调。 |
success返回值:
参数名 | 类型 | 说明 |
|---|---|---|
versionCode | number | 查询包名的版本号。 |
versionName | string | 查询包名的版本名称。 |
fail返回错误码
错误码 | 说明 |
|---|---|
202 | 参数错误。 |
1000 | 找不到应用。 |
示例代码
pkg.getInfo({
package: 'com.sina.news',
success: function (data) {
console.log(`handling success: ${data.versionCode}, ${data.versionName}`)
},
fail: function (data, code) {
console.log(`handling fail, code = ${code}`)
}
}) 描述
获取应用签名摘要信息,包括原生应用和快应用。
卡片场景仅支持获取已安装的原生应用信息,不支持获取快应用信息。
OBJECT参数
参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
package | string | 是 | 应用包名。 |
success | function | 否 | 成功回调。 |
fail | function | 否 | 失败回调。 |
complete | function | 否 | 执行结束后的回调。 |
success返回值:
参数名 | 类型 | 说明 |
|---|---|---|
signatureDigests | array | 使用SHA-256算法处理后的签名信息列表。 |
fail返回错误码
错误码 | 说明 |
|---|---|
202 | 参数错误。 |
1000 | 找不到应用。 |
示例代码
pkg.getSignatureDigests({
package: 'com.sina.news',
success: function (data) {
data.signatureDigests.map(function (item) {
console.log(`handling success: signatureDigests = ${item}`)
})
},
fail: function (data, code) {
console.log(`handling fail, code = ${code}`)
}
}) <template>
<div class="container">
<div class="item-container">
<text>{{hasInstalled}}</text>
<input type="button" class="btn" onclick="pkgHasInstalled" value="pkgHasInstalled" />
</div>
<div class="item-container">
<input type="button" class="btn" onclick="pkgInstall" value="installPkg" />
</div>
<div class="item-container">
<text>{{versionInfo}}</text>
<input type="button" class="btn" onclick="pkgGetInfo" value="getPkgInfo" />
</div>
<div class="item-container">
<text>{{signatures}}</text>
<input type="button" class="btn" onclick="pkgGetSignatureDigests" value="getPkgSignatureDigests" />
</div>
</div>
</template>
<style>
.container{
flex: 1;
flex-direction: column;
}
.item-container {
margin-top: 50px;
margin-right: 60px;
margin-left: 60px;
flex-direction: column;
}
.btn {
height: 80px;
text-align: center;
border-radius: 5px;
margin-right: 60px;
margin-left: 60px;
margin-bottom: 50px;
color: #ffffff;
font-size: 30px;
background-color: #0faeff;
}
</style>
<script>
import pkg from '@system.package'
import prompt from '@system.prompt'
export default {
data: {
versionInfo: '',
signatures: '',
hasInstalled:''
},
onInit: function () {
this.$page.setTitleBar({ text: 'package' })
},
pkgHasInstalled: function () {
let that = this
pkg.hasInstalled({
package: 'com.huawei.appmarket',
success: function (data) {
console.log('handling success: ' + data.result);
that.hasInstalled = data.result;
prompt.showToast({
message: 'result---' + data.result
})
},
fail: function (erromsg, errocode) {
prompt.showToast({ message: "hasInstalled fail" + errocode + ': ' + erromsg })
},
complete: function () {
console.log('complete')
}
})
},
pkgInstall: function () {
pkg.install({
package: 'com.sina.news',
success: function (data) {
console.log('handling success: ' + data.result)
prompt.showToast({
message: 'success'
})
},
fail: function (data, code) {
console.log('handling fail, code=' + code)
prompt.showToast({
message: 'fail'
})
},
complete: function () {
console.log('pkg install complete')
}
})
},
pkgGetInfo: function () {
var that = this
pkg.getInfo({
package: 'com.huawei.appmarket',
success: function (ret) {
console.log('getInfo succ data:' + JSON.stringify(ret))
that.versionInfo = JSON.stringify(ret)
prompt.showToast({
message: 'succ! versionCode:' + ret.versionCode + '\n versionName:' + ret.versionName
})
},
fail: function (erromsg, errocode) {
that.versionInfo = errocode + ': ' + erromsg
prompt.showToast({ message: "get pkginfo fail" + errocode + ': ' + erromsg })
},
complete: function () {
console.log('complete')
}
})
},
pkgGetSignatureDigests: function () {
var that = this
pkg.getSignatureDigests({
package: 'com.huawei.appmarket',
success: function (ret) {
console.log('getSignatureDigests succ data:' + JSON.stringify(ret))
that.signatures = JSON.stringify(ret)
prompt.showToast({
message: 'succ!' + 'sign:\n' + ret.signatures
})
},
fail: function (erromsg, errocode) {
that.signatures = errocode + ': ' + erromsg
prompt.showToast({ message: "GetSignatureDigests fail" + errocode + ': ' + erromsg })
},
complete: function () {
console.log('complete')
}
})
}
}
</script> 效果图如下:
