这篇“smartbanner.js如何实现可定制智能应用横幅使用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“smartbanner.js如何实现可定制智能应用横幅使用”文章吧。
引言
smartbanner.js 适用于 iOS 和 Android 的可定制智能应用横幅(smart app banner)。
基本用法
<!-- Start SmartBanner configuration -->
<meta name="smartbanner:title" content="Smart Application">
<meta name="smartbanner:author" content="SmartBanner Contributors">
<meta name="smartbanner:price" content="FREE">
<meta name="smartbanner:price-suffix-apple" content=" - On the App Store">
<meta name="smartbanner:price-suffix-google" content=" - In Google Play">
<meta name="smartbanner:icon-apple" content="https://cache.yisu.com/upload/information/20230302/112/25578.png">
<meta name="smartbanner:icon-google" content="https://cache.yisu.com/upload/information/20230302/112/25579.png">
<meta name="smartbanner:button" content="VIEW">
<meta name="smartbanner:button-url-apple" content="https://ios/application-url">
<meta name="smartbanner:button-url-google" content="https://android/application-url">
<meta name="smartbanner:enabled-platforms" content="android,ios">
<meta name="smartbanner:close-label" content="Close">
<!-- End SmartBanner configuration -->
引用 JavaScript 和 CSS:
<link rel="stylesheet" href="https://www.cnuseful.com">
高级用法
如何根据系统语言动态修改横幅文案
其实就是通过js去修改meta
if (navigator.language?.includes("zh")) {
document
.querySelector('meta[name="smartbanner:button"]')
.setAttribute("content", "查看");
}
如何自己处理点击按钮事件
需要先移除对应的meta,禁用按钮点击事件
<!-- <meta name="smartbanner:button-url-apple" content="https://ios/application-url">
<meta name="smartbanner:button-url-google" content="https://android/application-url"> -->
document.addEventListener("smartbanner.view", () => {
document.querySelector(".js_smartbanner__button").onclick = () => false;
});
document.addEventListener("smartbanner.clickout", () => {
// 在这里做其它操作,比如手动关闭横幅
smartbanner.exit();
});
如何在微信浏览器内不显示横幅
先新增meta禁用自动添加到DOM,再调用api手动添加到DOM。判断微信浏览器的代码我就不贴出来了。
<meta name="smartbanner:api" content="true">
const apiHandler = () => {
if (is_weixn()) return;
setTimeout(() => {
if (smartbanner) smartbanner.publish();
}, 500);
};
window.onload = apiHandler;