原文地址 https://github.com/fa-ge/NativeShare/blob/master/README.mdjavascript
最近有一個活動頁須要在移動端瀏覽器分享網頁到微信,QQ。雖然每個瀏覽器都有分享到微信的能力,但不是每一個都提供接口供網頁來調用。及時有提供,瀏覽器暴露出的api也各不相同,而我寫NativeShare的目的只是爲前端開發者提供一致的api來調用瀏覽器的原生分享組件。大小uglify + gzip = 4k。html
移動端幾乎全部瀏覽器都支持分享到QQ和QQ空間前端
QQ瀏覽器java
UC瀏覽器android
微信自帶瀏覽器(只能設置文案,分享須要用戶手動點擊右上角)ios
ios QQ自帶瀏覽器(只能設置文案,分享須要用戶手動點擊右上角)git
QQ空間APP(只能設置文案,分享須要用戶手動點擊右上角)github
android百度瀏覽器web
支持分享到web微博api
即將支持(安卓QQ自帶瀏覽器)
存在的問題
雖然幾乎全部的瀏覽器都支持分享到QQ和QQ空間,可是webview中基本都會不支持。我也很難判斷當前瀏覽器是否支持,瀏覽器是否喚起QQ APP我也很難判斷,全部除了上述支持的瀏覽器,APP外其餘狀況調用分享到QQ我也會拋出異常。
安卓的QQ自帶瀏覽器分享有問題
UC瀏覽器安卓端不能設置icon
百度瀏覽器安卓端不能指定分享
支持ES6模塊,AMD,CMD引入
若是你的項目沒有模塊化。你也能夠直接用script標籤引入NativeShare.js。能夠參考demo
import NativeShare from 'nativeshare' // 先建立一個實例 var nativeShare = new NativeShare() // 若是你須要在微信瀏覽器中分享,那麼你須要設置額外的微信配置 // 特別提示一下微信分享有一個坑,不要分享安全域名之外的連接(具體見jssdk文檔),不然會致使你配置的文案無效 // 建立實例應該帶參數 var nativeShare = new NativeShare({ appId: '', timestamp: '', nonceStr: '', signature: '', }) // 設置分享文案 nativeShare.setShareData({ icon: 'https://pic3.zhimg.com/v2-080267af84aa0e97c66d5f12e311c3d6_xl.jpg', link: 'https://github.com/fa-ge/NativeShare', title: 'NativeShare', desc: 'NativeShare是一個整合了各大移動端瀏覽器調用原生分享的插件', from: '@fa-ge', }) // 喚起瀏覽器原生分享組件(若是在微信中不會喚起,此時call方法只會設置文案。相似setShareData) try { nativeShare.call() // 若是是分享到微信則須要 nativeShare.call('wechatFriend') // 相似的命令下面有介紹 } catch(err) { // 若是不支持,你能夠在這裏作降級處理 }
NativeShare一共只有三個實例方法
getShareData() 得到分享的文案
setShareData() 設置分享的文案
call(command = 'default', [options]) 調用瀏覽器原生的分享組件
{ icon: '', link: '', title: '', desc: '', from: '', // 如下幾個回調目前只有在微信中支持和QQ中支持 success: noop, fail: noop, cancel: noop, trigger: noop, }
調用call方法時第一個參數是指定用什麼命令調用分享組件。目前支持6個命令。分別是
default 默認,調用起底部的分享組件,當其餘命令不支持的時候也會調用該命令
wechatTimeline 分享到朋友圈
wechatFriend 分享給微信好友
qqFriend 分享給QQ好友
qZone 分享到QQ空間
weibo 分享到微博
若是你是瀏覽器開發者或者你知道其餘瀏覽器調用分享的方式,請務必必定要告訴我。