整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

HTML5网页水印SDK的实现方法

HTML5网页水印SDK的实现方法

篇文章给大家带来的内容是关于HTML5网页水印SDK的实现代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

在网站浏览中,常常需要网页水印,以便防止用户截图或录屏暴露敏感信息后,追踪用户来源。如我们常用的钉钉软件,聊天背景就会有你的名字。那么如何实现网页水印效果呢?

网页水印SDK,实现思路

1.能更具获取到的当前用户信息,如名字,昵称,ID等,生成图片水印

2.生成一个Canvas,覆盖整个窗口,并且不影响其他元素

3.可以修改字体间距,大小,颜色

4.不依赖Jquery

5.需要防止用户手动删除这个Canvas

实现分析

初始参数

size: 字体大小

color: 字体颜色

id: canvasId

text: 文本内容

density: 间距

clarity: 清晰度

supportTip: Canvas不支持的文字提示

生成Canvas

根据id生成Canvas,画布大小为window.screen大小,若存在原有老的Canvas,清除并重新生成。

画布固定定位在可视窗口,z-index为-1

let body=document.getElementsByTagName('body');

let canvas=document.createElement('canvas');

canvas.style.cssText='position: fixed;width: 100%;height: 100%;left:0;top:0;z-index: -1;';

body[0].appendChild(canvas);

指纹生成算法

let canvas=document.getElementById(this.params.id);

let cxt=canvas.getContext('2d');

let times=window.screen.width * this.params.clarity / this.params.density;//横向文字填充次数

let heightTimes=window.screen.height * this.params.clarity * 1.5/ this.params.density; //纵向文字填充次数

cxt.rotate(-15*Math.PI/180); //倾斜画布

for(let i=0; i < times; i++) {

for(let j=0; j < heightTimes; j++) {

cxt.fillStyle=this.params.color;

cxt.font=this.params.size + ' Arial';

cxt.fillText(this.params.text, this.params.density*i, j*this.params.density);

}

}

防止用户删除

使用定时器,定时检查指纹是否存在

let self=this;

window.setInterval(function(){

if (!document.getElementById(self.params.id)) {

self._init();

}

}, 1000);

项目编译

使用glup编译

var gulp=require('gulp'),

uglify=require("gulp-uglify"),

babel=require("gulp-babel");

gulp.task('minify', function () {

return gulp.src('./src/index.js') // 要压缩的js文件

.pipe(babel())

.pipe(uglify())

.pipe(gulp.dest('./dist')); //压缩后的路径

});

以上就是HTML5网页水印SDK的实现方法的详细内容,更多请关注其它相关文章!

更多技巧请《转发 + 关注》哦!

015 年刚刚开始,微信 JS SDK 发布,惊爆众人,HTML5 产业好事连连。

JS SDK 这个概念,其实微博和淘宝的开放平台很早前就有,包括手机 QQ 前段时间也推出了几个增强 API,但都未产生很大的影响。小巫之后终见大巫,这次微信开放的 SDK,站在了另一个高度,web 到底能有多强?

HTML5的逆袭

其实之前微信也是有一些 JS API 的,比如分享。但这次一股脑开放了拍摄、录音、语音识别、二维码、地图、支付、分享、卡券等几十个 API,这条消息不需宣传,瞬间就占满了 HTML5 从业者的朋友圈。

因为微信给所有做 web 开发的人打开一扇新窗户:使用 js,你也可以调用各种强大的原生能力了!

客观的讲,微信的很多能力组件非常强,比如扫码,很多原生应用的扫码效果都不如微信。现在 HTML5 开发者瞬间成功逆袭,他们原本无法实现扫码,现在却能轻松的开发扫码应用,而且效果比很多原生应用都好(当然前提是你的 web 应用运行在微信的管理之下)。

首先受益的是微信内置的腾讯系 App,比如大众点评、滴滴打车、京东购物等。

以前微信在钱包栏目下以很别扭的方式内嵌了滴滴打车的 HTML5 版本,那个版本的体验比滴滴的原生版本差太多,不能说话只能打字,没有地图看不到司机在哪。在体验为王的移动互联网时代,这个将就能用的版本出现在微信的钱包分类下,其实是微信的败笔。

但如今不同了,滴滴打车的微信版本,将拥有不输于其原生 App 的能力。而且不用下载 App 就可以秒开应用。

大众点评的受益就更大了,不止是其微信内嵌版本的能力将大幅增强。因为使用场景的不同,滴滴在朋友间分享的只能是红包,离打车这个业务场景有点远;而大众点评在朋友间可以分享优惠或推荐商家,直接形成消费,通过关系链导流的效果会非常明显。

HTML5 定稿时,我写过的一篇文章,提到过 HTML5 的一大优势就是打破 App 孤岛,直穿应用子页面。一张大众点评的优惠券,通过朋友分享,就可以通过点击分享内容直接到达这个商户的界面,进而直接购买,这点连大众点评的原生 App 也做不到。

微信给我们展示了一个新的 web 世界:能力和原生一样强,但在应用的获取、流量的转换上进一步领先于原生应用。

很快,我们就会看到各种公众号、微店全面升级支持微信 JS SDK。然后我们就会发现,原来市占率最高的手机浏览器,是这个没有地址栏的微信。

浏览器的传统思维被突破

微信这个巴掌把浏览器厂商拍的不轻。但是浏览器厂商又很难还击,因为这挑战了他们的思维传统。

在 HTML5 规范制定时,很多人都有一种思维:web 是开放的,地址栏和超链接可能带来任意恶意网页,所以我们不能把 HTML5 的能力做到太强,会引发安全问题。

微信给了这些人不同的答案。

首先微信开放的能力没有涉及过于隐私的 API,比如个人敏感信息或好友关系,当然这个估计永远也不会开放。最关键的是,所有使用微信 JS SDK 的网站,都必须实名到微信认证、缴费。它采取了类似 Apple App Store 的策略,由系统运营方来保障用户的安全。

这个由微信构建的新 web 世界,不再开放,由微信所管理,他根本就没有地址栏,所有能使用微信增强能力的网页都是经过认证权限的。

其实 HTML5 强化这个领域已经发展多年,也已经有了行业规范,HTML5Plus.org,微信此次把这些标准都抛在一边,就是一心建设自己的生态系统。

除了管理模式不同,微信的设计体现了他对于用户体验的不同理解。其实我们大多数人都会认可一点,在手机浏览器里输入 url 是一个体验比较糟的事情,但是浏览器厂商却一直墨守成规。

我们来解构下微信的设计。

在微信里,既然没有地址栏,那么如何到达一个 web 应用,它有几个 web 入口?答案是 5 个。

  • 消息内容里的超链接;
  • 公众号的文章;
  • 朋友圈;
  • 扫一扫;
  • 预置入口的web应用,如钱包、购物等栏目。

这 5 个入口里,没有传统的地址栏,甚至也没有搜索。

web 初生时,人们获取 web 信息是主动式的,通过地址栏访问网站,网站太多后开始使用搜索引擎。Google 的 page rank 算法告诉网民,被链接的网页越多,这个网页的价值越高。微信的理解里,大多数人们获取 web 信息是被动的,这里没有地址栏、没有搜索、没有 page rank,朋友发给你的、你订阅的公众号发给你的,就是你需要的 web 内容。

如果你真的想要主动获得内容,那也没有地址栏,但是有扫一扫。

可是扫一扫就不在微信的管理之下了吗?当然不会。很多 App 开发者头疼的就是他们的 APK 地址变成二维码后,微信是不能下载安装的,这可是浏览器不会干的事情,用户要下载什么那就允许下,最多给一个可能不安全的提示。但是微信说,APK 只能是来自应用宝的链接才可以下载。你不接受?那就别用扫一扫。

就这样,微信构建了一个独特的 web 生态系统。它有关系链推荐,不需要搜索引擎;它有消息系统,不需要电子邮件;它有增强的浏览器,有支付等业务闭环手段。最终一个完整而又封闭的 web 世界出现在微信里。信息在这里产生、在这里流转、在这里变现。手机上只需一个微信就够了,什么都能干了。

腾讯的战略

微信是仅仅强化了一批能力 API 吗?不是,大家还记得前段时间腾讯发布的 X5 浏览器内核吗? X5 内核内置于 QQ 浏览器,在安装了 QQ 浏览器后,微信有着不同的表现,它将调起 X5 内核,与 JS SDK 协作实现更好的体验。X5 和 JS SDK,这究竟是一盘什么棋呢?

微信其实很早就能开放这些 JS SDK,甚至一度曾开放几个又收了回去,为何此时如此大力发展 web 生态系统?

我想到了前段时间马化腾的话,微信只是张“站票”,他还给腾讯提出的一个新愿景:连接一切。张小龙也曾仔细研读 KK 的《失控》,提出微信要营造一个森林,而不是造一个宫殿。

其实这些事情是相关联的。有战略需求,才会出现 X5、微信 JS SDK 这些支撑战略的产品。要论站票和卧铺的区别,那就是一个可以躺着挣钱。如何才能躺着挣钱,看看阿里巴巴就知道了。在阿里建立的庞大生态系统里,每天无数人努力赚钱,阿里坐享其成。

腾讯曾经数次努力电商,但怎么也赚不到阿里的钱。它只能走自己的路。就是马化腾所说的,回归本源,连接一切。

电商搞不定,那就不搞了,剥离和注资给京东。搜索搞不定,那就不搞了,剥离和注资给搜狗。不再天天盯着阿里、百度,腾出全部精力,在移动互联网时代,达成连接一切的愿景。

没错,基于微信这张站票,腾讯最终要打造出一个由他掌控的生态系统,而对于一个工具而言,构建生态系统的最佳技术路线就是 web,强化 HTML5 是打造更优质生态系统的必由之路。

而此时能做这事,还恰逢 HTML5 即将崛起的机会。一方面手机硬件的不断提升使得 HTML5 表现更好,另一方面,就是 Apple 对 HTML5 的态度在开放,或者说 Apple 整体都在开放。一方面 iOS 设备的市场份额远低于 Android,另一方面库克确实没有乔布斯强势,所以目前 Apple 的整体态度是开放的。前段时间 iOS8 发布,Apple 给第三方厂商开放了自己的 js 加速引擎 Nitro,以强化 iOS 设备上 HTML5 的表现。此时的微信 JS SDK 上线,不必再像以前那样担心无法通过 Appstore 审核。

而且事实实际上是反过来的,带有微信 JS SDK 的版本其实早已更新到 Appstore 了,只是前几天才给开发者公布了调用接口。

但是不管怎么样,这带有试探 Apple 底线的味道。如果仅仅在中国倒也是区域行为,但微信事实上已经遍布全球,当海外开发者也大量开发微信专属的增强 web 时,Apple 和 Google 会如何看待这个新的跨平台霸主?

开发者的机会

whatever,巨头们的烦恼让他们自己操作吧,我等创业者和开发者还是要抓紧这个机会快速发展自己,快速利用微信 JS SDK 开发出惊艳的 HTML5 应用,抢先占有用户。后面的比较技术,有兴趣开发 JS SDK 的开发者可以继续往下看。微信本次开放的 JS SDK 分类清单如下:

  • 分享类接口;
  • 图像类接口;
  • 音频类接口;
  • 智能类接口;
  • 设备信息类接口;
  • 地理位置类接口;
  • 界面操作类接口;
  • 微信扫一扫接口;
  • 微信小店接口;
  • 微信卡券接口;
  • 微信支付接口。

滴滴打车、大众点评这些微信内置应用的增强路线,将基本照着其原生 App 的模样演进。其他的开发者,还是要运营好自己的公众号,目前公众号分为订阅号和服务号。

订阅号的开发者提供的大多是资讯,那么对于资讯而言,可以利用 JS SDK 做的事情什么?

丰富内容形式,即除了图文,新增音频能力。类似电台的订阅号将有机会兴起。但微信暂时还没有开放视频能力,朋友圈里的小视频是原生实现的。在 Android4.0 以上的手机,安装了 QQ 浏览器后,微信网页里的视频播放才能被 X5 引擎优化。而目前使用 HTML5 标准的视频,会在低端手机上遭遇性能问题。所以视频还是缓缓再搞。

不管是做图文还是做音频,都应该利用新提供的设备 API 获取网络状态,WIFI 和 2G 下应该给予用户不同的内容以增强用户体验。

根据地域分发信息。资讯也是有地域性的,类似地方台的订阅号以后也会占有一席之地,而这也非常符合微信打造森林的生态初衷。

服务号就五花八门了,很多大企业有自己的掌上客服 App,这回可以整体搬迁到微信上了,这也给企业服务开发商很多新商机;

对于可线上交易的微店,微信小店和支付这些 API 必不可少。微店的商品,这下可以直接被分享出去,只要东西好,传播更容易、销量也会高升;

对于线下消费的 O2O,地图和卡券很重要。卡券对微信而言是个新东西,之前 iOS 已经有了 passport,大众点评也有自己的会员卡体系,但微信自己做了一套,相信体量会做的更大,以后大家出门不用在钱包里塞那么多卡了,都在微信里了。

微信官方还推荐了几个 App 供开阔思路。

印美图是一个云打印 App,自拍的美图,可以直接提交给这个 App 的后台,运营方打印好照片快递给你。微邮筒是一个语音明信片,在明信片里留下自己的声音,再发给朋友,并且可以长期保存在服务器。

微信官方没有提供开发和调试配套的服务,客观地讲,开发和调试的便利性很不好。推荐一个免费开发工具 HBuilder,可以完美支持微信 JS SDK 的语法提示,大幅提升开发效率。下图中敲 wxc 回车就能生成一段完整的微信 API 初始化的长长代码,还能给予各种参数的值域提示。

接下来会如何

我们都很确信,JS SDK 的这个版本只是一个开始,未来腾讯还为了强化其 web 生态系统建设而不停升级产品。

1. 会颠覆原生 App 吗?

微信 JS SDK 继续升级下去,真的会颠覆原生 App 吗?目前的微信 JS SDK,属于 web 增强,它依然还不能离线使用,还没有解决网页跳转间白屏的体验,也不能在手机桌面创建快捷方式,暂时它并没有向着努力做到和原生一模一样体验而前进。

就腾讯连接一切的愿景而言,它应该没有颠覆原生这个战略目标。但是这个月活 4 亿的平台势必会更大程度占有用户使用手机的时间,自然也会大幅影响原生 App 的流量。对于普通用户而言,每天使用手机的时间是有限的,之前每天看着手机屏幕的总时长里可能 60% 是被微信占去的,那么微信未来可能会占去 80% 的时间。

另外微信虽然没有颠覆原生 App 的愿景,不代表其他人不会做这件事。IT 行业总是在持续创新和突破的,除了微信,还会有其他大型 HTML5 的平台出现,可以预见 HTML5 成为主流已是不可阻挡的趋势。

2. 微信会重构移动搜索吗?

这个概率其实很高。在微信现在的 API 里,有一个智能语义的接口,传入“查一下明天从北京到上海的南航机票”,就会返回结果。很像 siri 是不是?其实微信完全可以现在就在扫一扫下面加一个说一说,但是他目前没有这么做,是因为搜狗还不够强大?还是因为不想过早刺激百度? 确实相比起来,腾讯在手机上抢夺百度份额的胜算是远高于抢夺阿里的。但是手机端广告市场一直没起来,抢掉搜索份额又如何?

3. 微信会重构移动电商吗?

其实单纯的套 PC 互联网的模式给移动互联网是不对的。腾讯最关心的不是移动电商,它更关心移动支付。所以易迅才会被剥离给京东。腾讯十年总结时曾说,是互联网网民的高速增长红利造就了腾讯的今天。其实类似于雷军风口的理念。

移动支付,是一个大风口,是未来若干年高速增长的产业。

我们可以预见,未来移动支付的用户数会越来越多,交易额会越来越多,直到颠覆现金的地位。但移动支付可不只是在电商网站买东西付款,更多场景在 O2O 范畴里。

移动支付大战里,腾讯一方面通过微信红包发展用户,另一方面通过资本手段控制支付场景,其投资的滴滴打车、大众点评、京东电商,这些合作伙伴的业务都是高频的支付场景,其成功的帮助腾讯发展了移动支付体系。

当然阿里也不甘示弱的支持快的和美团。滴滴和快的的补贴大战、大众点评和美团补贴大战,看似疯狂,其实都是为了移动支付这张船票,为了未来十年的继续高速增长是任何一个巨头都不愿错过的。

在未来人们的衣食住行里,买衣服花钱用阿里和腾讯,吃饭花钱用阿里和腾讯,出门打车结帐用阿里和腾讯,就是买房好像不太好做移动支付。

另外近期在医疗领域,移动支付之争也打响了,那意味着以后看病,也用移动支付。

微信的 JS SDK,其实很大程度上就是为了把这些需要花钱的 App 控制在自己的生态下,微信给这些 App 提供流量、提供更强大的运行环境,大家努力挣钱,然后微信躺着分钱。

4. 不管怎么样,HTML5 会大火特火

腾讯的这条构建 web 生态系统的路,还是有很多高手已经看懂了的。很快各大互联网巨头都会有自己的对策。但不管是什么对策,都是要基于 HTML5 来做了。

对于 HTML5 的开发者和从业者,这都将是一个最好的时代。

本文作者王安,DCloud公司CEO,W3C会员、HTML5中国产业联盟发起人,HTML5开发工具HBuilder设计师,十几年web和手机开发经验,个人邮箱:wangan@dcloud.io。

[本文来自读者的投稿,不代表36氪立场]

的公司企业需要在H5上实现实时语音功能,但往往因为技术问题束手无策,其实可以选择和第三方服务商合作。在选择前,一些不懂基础技术知识的公司可以先了解一下:H5是一种编程语言,是HTML5的简称,SDK是一套软件开发的工具包,全称是Software Development Kit。要想实现基于H5的实时语音聊天,会面对诸如网页如何调用系统API录用、录音后的数据是什么格式、怎么转码、如何实现实时通讯等一系列问题。而这些问题,第三方服务商所提供的SDK都会有对应的工具来解决。


那么,市面上声网、ZEGO即构科技、拍乐云、环信、融云等移动端H5实时语音SDK第三方服务商众多,该如何选择?


关于ZEGO即构科技


ZEGO即构科技,全球云通讯服务商,致力于用顶尖云通讯技术创造服务价值。公司自成立伊始,就专注自研音视频引擎,在音频前处理、网络自适应和跨平台兼容性等方面,达到国际一流水平,同时充分利用基础云服务商的能力,构建了MSDN海量有序自学习数据网络,服务覆盖全球,截止目前,ZEGO已经为两百多个国家和地区的用户提供了优质服务,赢得社交、游戏、直播、金融、教育、医疗、呼叫中心和智能硬件等领域大量头部客户的信赖。


ZEGO即构科技实时语音SDK优势:


1平台兼容性强


即构科技的实时语音SDK除了支持移动端H5外,也支持 iOS、Android、Windows、macOS、Web、小程序,并支持平台间互通,具体的兼容性要求见下表。



2功能多样、齐全


2.1基础功能


2.11直播推拉流


支持 RTMP、FLV、HLS 和 RTP 等协议,全球节点实现超低100ms延迟,同时提供多 CDN 推流,自适应流控等功能。


2.12直播连麦


支持多主播连麦,多人实时通讯等功能,可实现多达 32 路的连麦直播推拉流。


2.2音频引擎


2.21回声消除


引擎中自带回声消除功能,在双讲情况下,各方语音清晰,双工体验良好,支持舒适,适度和激进三种回声消除模式。


2.22噪音抑制


引擎中自带噪音抑制功能,它结合心理声学模型,能够提高20dB+的信噪比, 同时不损伤语音音质。


2.23自动增益


引擎中自带自动增益功能,能够自动调节麦克风音量,适应远近拾音,在吵杂环境下带来良好的体验。


2.24多种编码


支持多种硬编、多种软编,以适应多种应用场景和网络环境的编码要求。


2.25多种解码


支持多种硬解、多种软解,以适应多种应用场景和网络环境的解码要求。


2.3网络传输


2.31网络传输 Qos


实现冗余数据(FEC)和重传策略(ARQ)的动态平衡,一方面保障宽带的充分利用,另一方面不至于抢带宽造成链路自身拥塞。


2.32网络自适应


提供端到端的全链条优化算法,能根据当前网络情况预测网速并自动进行流控,支持弱网自适应推流和拉流。


2.33智能调节


码率和帧率的智能调节,保障了流畅性


2.34抖动缓冲


在弱网环境下,利用良好的抖动缓冲策略找到延时与流畅的最佳契合点。


总结:


即构科技的移动端H5实时语音SDK能够为有需求的公司提供便捷接入、高清流畅、多平台互通、低延迟、高并发的音视频服务,可以实现一对多,多对多的实时语音互动,秀场直播,语音会议等场景。他们的SDK具有提供 4 行代码全平台极速接入音视频服务的能力,能够让开发者在 30 分钟内构建出拥有完美音视频体验的产品和服务,因此,有需求的公司可到即构科技官网进行了解,他们免费提供90天的试用服务。