这个图片大家都很熟悉,在UNIAPP打包时没有勾选push模块,调用push相关功能就会进行提示
那么有没有方法可以在运行时知道是否有打包push模块呢
有的,下面就是一个通过plus.runtime.getProperty判断是否有打包push模块的例子
if (window.plus && window.plus.push) {
window.plus.runtime.getProperty( window.plus.runtime.appid, function ( info ) {
if (!info.features.includes('push')) return;
window.plus.push.getClientInfoAsync((c) => {
console.log(c)
})
})
另外可以使用 HBuilderX 的一些特定模块来获取打包配置信息。
在 Uni-app 中,可以使用 plus.runtime.getProperty()
方法获取打包配置信息,该函数可以获取应用的配置参数。官方文档可以参考下面链接
例如通过如下代码获取当前应用的应用ID和应用版本:
var id = plus.runtime.getProperty("appid");
var version = plus.runtime.getProperty("version");
其中,获取的参数名称需要与 manifest.json
文件中 plus
-> runtime
节点下配置的参数名称保持一致。
需要注意的是,plus.runtime.getProperty()
方法需要在 H5+ 环境中使用,所以最好先判断一下是否处于 H5+ 环境中。例如:
if (window.plus) {
var id = plus.runtime.getProperty("appid");
var version = plus.runtime.getProperty("version");
console.log("应用ID为:" + id);
console.log("应用版本为:" + version);
} else {
console.log("当前不在 H5+ 环境中");
}
另外,获取打包配置信息还可以使用 plus.runtime.arg
属性,该属性可以获取应用启动时,传入的参数信息。可以在应用启动时传入一些自定义的参数,例如:
// 在打开应用时传入参数
mapp = plus.runtime.createShortcut({
name: "Uni-app H5+ 示例",
icon: "_www/build/logo.png",
url: "http://www.example.com/?id=001&name=Jay"
});
然后可以使用 plus.runtime.arg
获取这些参数:
var arg = plus.runtime.arg;
console.log(arg.id); // 输出:001
console.log(arg.name); // 输出:Jay
需要注意的是,plus.runtime.arg
属性在生命周期中只能获取一次,如果需要多次获取,则需要将获取到的参数保存起来。