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://url/to/apple-store-icon.png">
<meta name="smartbanner:icon-google" content="https://url/to/google-play-icon.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="node_modules/smartbanner.js/dist/smartbanner.min.css" rel="external nofollow" >
<script src="node_modules/smartbanner.js/dist/smartbanner.min.js"></script>

高级用法

如何根据系统语言动态修改横幅文案

其实就是通过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;

以上就是smartbanner.js实现可定制智能应用横幅使用示例的详细内容,更多关于smartbanner.js可定制智能横幅的资料请关注我们其它相关文章!

(0)

相关推荐

  • FastJSON字段智能匹配踩坑的解决

    背景 2021年第一天早上,客户突然投诉说系统的一个功能出了问题,紧急排查后发现后端系统确实出了bug,原因为前端传输的JSON报文,后端反序列化成JavaBean后部分字段的值丢失了. 查看git提交历史记录,前端和后端近期并未对该功能的接口字段做任何修改,联想到上个版本升级了后端的FastJSON的版本,怀疑是后端系统对FastJSON升级导致的问题. 复现 @Data static class Label { @JSONField(name = "label_id") priva

  • 如何为你的JS项目添加智能提示与类型检查详解

    前言 最近在做项目代码重构,其中有一个要求是为代码添加智能提示和类型检查.智能提示,英文为 IntelliSense,能为开发者提供代码智能补全.悬浮提示.跳转定义等功能,帮助其正确并且快速完成编码.说起来,JavaScript 作为一门动态弱类型解释型语言,变量声明后可以更改类型,并且类型在运行时才能确定,由此容易产生大量代码运行中才能发现的错误,相比 Java 等静态类型语言,开发体验上确实差了一截.更烦躁的是,智能提示就是依赖于静态类型检查的,所以在以前,指望 JavaScript 的智能

  • JS寄快递地址智能解析的实现代码

    去年做了些前端内容,最近在整理一些稍微有点用的内容,比如智能解析地址,用户只要输入:张三1351111111江苏省扬州市广陵区XX小区X楼xxx室,就能解析出姓名.电话.省市区.地址信息了.是不是很方便? 项目地址暂时没有放,大家可以关注我的个人码云地址https://gitee.com/w9 纯JavaScript,无需Jquery,轻量级的JS包.可参考以下代码: let defaultData = []; const mCity = {}; const mArea = {}; /** *

  • JS实用案例之输入智能提示(打字机输出效果)

    目录 前言 1.输入智能提示 效果演示 案例需求 JavaScript实现 2.打字机输出 效果演示 案例需求 JavaScript实现 结语 前言 本篇文章所有示例来自于牛客网题库/在线编程/JS篇,这些都是前端开发中常用的功能,借此记录一下刷题过程,巩固基础! 1.输入智能提示 效果演示 有以下HTML和CSS: HTML结构 <div class="search"> <div> <!-- 调用suggest函数 --> <input ty

  • 使用ethers.js部署Solidity智能合约的方法

    如果你已经在以太坊上开发过DApp,那你在前端JavaScript中可能用过web3.js.Ethers.js则是一个轻量级的web3.js替代品. 与Web3.js相比,Ethers.js有很多优点,其中我最喜欢的一个特性是Ethers.js提供的状态和密钥管理.Web3的设计场景是DApp应该连接到一个本地节点,由这个节点负责保存密钥.签名交易并与以太坊区块链交互.现实并不是这样的,绝大多数用户不会在本地运行一个geth节点.Metamask在浏览器应用中有效地模拟了这种节点环境,因此绝大多

  • smartbanner.js实现可定制智能应用横幅使用示例

    目录 引言 基本用法 高级用法 如何根据系统语言动态修改横幅文案 如何自己处理点击按钮事件 如何在微信浏览器内不显示横幅 引言 smartbanner.js 适用于 iOS 和 Android 的可定制智能应用横幅(smart app banner).简单易用,不依赖任何框架,怎么使用官方文档也写的很清楚,我就不过多介绍. 传送门 基本用法 <!-- Start SmartBanner configuration --> <meta name="smartbanner:titl

  • JS+Ajax实现百度智能搜索框

    首先浏览实现后的结果,输入一个a之后会出现包含a的下拉列表,当我们点击某一个的时候,搜索框中就会出现点击的值.实现所需要的主要是ajax+js. 前端search.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <html> <head> <title>Insert

  • D3.js实现简洁实用的动态仪表盘的示例

    本文介绍了D3.js实现简洁实用的动态仪表盘的示例,分享给大家,具体如下: 动态效果图: 仪表盘效果图 细看上面的动态效果图,可以发现: 一个值变换到一个新的值时,是一个渐变的过程: 圆弧末尾有一个竖线,作为仪表盘的指针,在仪表盘数值变化时,有一个弹性的动画效果. 一开始,我是用Echarts来实现仪表盘,但是它无法满足上面的两点需求.所以后来改成用D3.js. D3.js可以完美地实现图表的定制,从细节上,完美地满足我们的需求. 初始化仪表盘 1.首先定义一个svg元素: <svg id=&quo

  • vuejs2.0运用原生js实现简单的拖拽元素功能示例

    整理文档,搜刮出一个vuejs2.0运用原生js实现简单的拖拽元素功能示例,留作笔记. <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/> <meta

  • 原生js实现移动端触摸轮播的示例代码

    PC端上实现图片轮播效果很简单,只要通过使用click事件就可以非常简单的实现效果,但是在移动端上,就要通过核心的touch事件来实现. 下面是移动端手指滑动轮播图的完整代码. <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, user-scala

  • JS实现非首屏图片延迟加载的示例

    目标 减少资源加载可以明显的优化页面加载的速度,所以可以减少页面载入时立即下载的图片的数量,以提高页面加载速度,其他的图片在需要的时候再进行加载. 思路 想要实现以上的目标,有几个地方需要思考. 1.如何判断哪些图片需要立即加载,哪些可以晚些再加载? 2.如何控制图片在指定的时候加载? 对于第一个问题,页面打开就会被用户看到的图片肯定需要立即加载,其他的可以延后.即在视窗中的图片需要立即加载.那么如何判断图片是否在视窗内呢?getBoundingClientRect可以返回元素的大小及其相对于视

  • JS实现运动缓冲效果的封装函数示例

    本文实例讲述了JS实现运动缓冲效果的封装函数.分享给大家供大家参考,具体如下: 之前经常写运动函数,要写好多好多,后来想办法封装起来.(运动缓冲). /* 物体多属性同时运动的函数 obj:运动的物体 oTarget:对象,属性名为运动的样式名,属性值为样式运动的终点值 ratio:速度的系数 */ function bufferMove(obj, oTarget, fn,ratio = 8) { clearInterval(obj.iTimer); obj.iTimer = setInterv

  • p5.js实现斐波那契螺旋的示例代码

    本篇文章主要介绍了p5.js实现斐波那契螺旋的示例代码,分享给大家,也给自己做个笔记 效果如下: 主要方法 translate() rotate() arc() 斐波那契螺旋 斐波那契螺旋线也称"黄金螺旋",是根据斐波那契数列画出来的螺旋曲线,以斐波那契数为边的正方形中画一个90度的扇形,连起来的弧线就是斐波那契螺旋. 草图 过程分解 一.定义一个空的斐波那契数组: var Fibonacci = []; 二.初始化 默认情况下draw()函数会无限重复绘图, frameRate()函

  • Node.js 利用cheerio制作简单的网页爬虫示例

    本文介绍了Node.js 利用cheerio制作简单的网页爬虫示例,分享给大家,具有如下: 1. 目标 完成对网站的标题信息获取 将获取到的信息输出在一个新文件 工具: cheerio,使用npm下载npm install cheerio cheerio的API使用方法和jQuery的使用方法基本一致 如果熟练使用jQuery,那么cheerio将会很快上手 2. 代码部分 介绍: 获取segment fault页面的列表标题,将获取到的标题列表编号,最终输出到pageTitle.txt文件里

随机推荐