ios和android浏览器与应用间共享数据的方法
老大给了一个需求,通过分享的页面下载安装打开应用后,获取分享链接的参数,想必现在很多应用都有这个需求,其实这就是应用间共享数据,通用思路就是利用剪切板共享数据。用户通过浏览器打开分享链接下载的时候,将参数写入剪切板中,然后打开应用获取剪切板中的数据即可。虽然思路很简单,但是实现起来最大的问题是浏览器支不支持将数据写入剪切板中。
1.clipboardjs
我使用的是这个库clipboardjs,很小而且不需要flash的支持,目前浏览器基本都禁用flash了,所以不建议使用zeroclipboard了
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body align="center">
<!-- 1. Define some markup -->
<div>testclipboard</div>
<button class="btn" data-clipboard-action="copy" data-clipboard-target="div">Copy</button>
<!-- 2. Include library -->
<script src="clipboard.min.js"></script>
<!-- 3. Instantiate clipboard -->
<script>
var clipboard = new Clipboard('.btn');
clipboard.on('success', function(e) {
console.log(e);
});
clipboard.on('error', function(e) {
console.log(e);
});
</script>
</body>
</html>
2.结论
用了ios和android(小米手机)上主流的浏览器测试了兼容性
浏览器 | safari/系统 | chrome | qq浏览器 | UC浏览器 | 微信 | 猎豹 | 搜狗 |
---|---|---|---|---|---|---|---|
ios | ok | ok | ok | ok | ok | ok | ok |
android | ok | ok | failed | ok | failed | failed | ok |
通过表格发现ios上的主流浏览器都这个操作,但是android就很怪了,android版本的微信浏览器内核是基于qq浏览器的,可以在论坛上找到相应的bug,但是目前还没有解决办法。当用户用微信打开链接之后,再建议使用系统浏览器打开分享链接,来绕过这个问题。