Web Share API - Navigator.share() 使用方法

  Web Share API 是現代瀏覽器提供的最新功能之一,它讓網頁的使用者能夠體驗到和原生 app 完全相同的分享體驗。這篇文章將會教你 navigator.share() 的使用方法。

  Web Share API 是什麼?

  Web Share API 是一個簡單易用的 API,可以讓使用者用作業系統原生的介面分享至其他 app、分享給你的朋友等,就像是使用原生 app 一樣。以下就是 Android 和 iOS 的原生分享介面,相信大家一定不陌生:

  

Web Share API - Navigator.share() 使用方法

  

Web Share API - Navigator.share() 使用方法

  網頁端實作這隻 API,就等於同時實作了 Share to Facebook、Share to Twitter、Share to XXX… 等各種分享至第三方平台的功能了!

  是不是很想趕快學起來呢?

  讓我們繼續往下看!

  Web Share API 的使用限制

  要使用 Web Share API 有幾個限制:

  click

  Navigator.share()

  navigator.share() 使用方法如下:

  if (navigator.share) {

  navigator.share({

  title: '標題',

  text: '文字描述',

  url: 'shubo/',

  })

  .then(()=> console.log('成功!'))

  .catch((error)=> console.log('發生錯誤', error));

  }

  首先我們要判斷瀏覽器是否支援這個功能,所以需要加上 if (navigator.share) { // ... } 的判斷。

  接著我們呼叫 navigator.share() function,它的參數是一個物件,支援 title , text , url 及 files 四個 key。

  最後這個 function 回傳值是一個 promise,所以我們可以分別對成功或是失敗的情況做額外處理。

  延伸閱讀: [教學] 深入淺出 JavaScript Promise

  Canonical URL

  有個小細節需要注意,如果你的網站有不同的網址指向同樣的內容(例如:電腦版網頁 example 用手機瀏覽時會 redirect 到手機版網頁 m.example ),那麼你可能應該分享 canonical URL (標準版的 URL),而不是 document.location.href 。

  為什麼呢?因為如果你在手機上瀏覽這個網站,分享出去的會是 m.example ,而如果手機版沒有做 redirect 的話,桌機的使用者就會看到手機版的排版 (感覺這狀況在 FB 挺常見的 -.-)。

  如何解決呢?一般來說,這種情況為了 SEO 的緣故會在 HTML head 裡面標記 ,讓搜尋引擎不要重複 index。因此我們可以用幾行簡單的程式碼抓出 canonical URL:

  const canonicalElement=document.querySelector('link[rel=canonical]');

  const url=canonicalElement && canonicalElement.href || document.location.href;

  navigator.share({ url: url });瀏覽器支援度 Browser Support

  這是一個相對較新的標準,截至寫這篇文章為止 (2021三月),從 Web Share API - caniuse 可以看到目前支援 Web Share API 的瀏覽器只有 Safari、iOS Safari 和 Chrome for Android,並沒有受到廣泛地支持。

  雖然目前瀏覽器支援度不佳,不過很明顯 Web Share API 的使用情境主要集中在手機上,所以我個人認為只要做好 feature detection,搭配原本習慣的分享方式使用應該不成問題。

  Happy Sharing!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 这个问题属于技术问题,可以回答。Audit usage of navigator.userAgent, navigator.appVersion, and navigator.platform可以用于检查和识别浏览器类型和版本号,以便在网站和应用程序中做出相应的调整和优化。但是,在使用时需要注意安全问题,避免被黑客利用。建议使用一些安全的库和工具来提高安全性。 ### 回答2: 使用 navigator.userAgent、navigator.appVersion 和navigator.platform 主要是为了获取用户的浏览器和操作系统信息,以便在开发网页时做出相应的适配和优化。但是,使用这些属性时需要注意以下几点。 首先,navigator.userAgent 属性返回用户代理字符串,其中包含了关于浏览器的详细信息。开发者可以利用这个信息来判断用户使用的浏览器类型、版本和浏览器的厂商等。然而,需要注意的是,用户代理字符串可以被用户篡改,因此不能完全依赖它来确定用户的真实环境。 其次,navigator.appVersion 属性返回浏览器的版本信息。如果开发者需要了解用户浏览器的具体版本,可以使用这个属性。然而,由于不同的浏览器可能返回不同格式的版本信息,需要谨慎处理和兼容。 最后,navigator.platform 属性返回用户操作系统的信息。通过这个属性,开发者可以了解用户的操作系统类型,如Windows、Mac、Linux等。根据操作系统的不同,可以针对性地进行功能展示和优化。然而,需要注意的是,有些用户可能会使用虚拟机或伪造的操作系统,从而造成信息不准确。 总的来说,使用这些属性可以帮助开发者获取用户的浏览器和操作系统信息,但在使用过程中需要注意信息的准确性和可靠性。为了更好地适配用户的环境,建议开发者结合其他技术和手段,如Feature Detection、Progressive Enhancement等来完成开发工作。 ### 回答3: 在使用navigator.userAgent、navigator.appVersion和navigator.platform时,我们需要注意以下几点: 1. navigator.userAgent: 它包含了浏览器厂商、版本号和操作系统等信息。我们可以通过它来判断用户使用的浏览器和操作系统类型。但是需要注意的是,由于其内容可以由用户修改,所以不能完全依赖它来进行精确的浏览器和操作系统判断。 2. navigator.appVersion: 它包含了浏览器的版本号和操作系统的版本号等信息。我们可以通过它来确定用户使用的浏览器和操作系统的具体版本。同样需要注意的是,用户可以修改这些信息,所以不能100%依赖它来进行判断。 3. navigator.platform: 它返回操作系统的平台信息,比如"Win32"表示Windows 32位系统,"MacIntel"表示Mac系统等。我们可以通过它来判断用户使用的操作系统平台。但同样需要注意的是,用户可以修改这个信息,所以不能完全依赖它来确定用户的操作系统。 综上所述,虽然我们可以使用这些属性来判断用户使用的浏览器和操作系统的类型和版本,但由于这些信息是可以被用户修改的,所以在进行判断时需要小心,不要仅依赖这些属性进行关键性的操作,而应该结合其他更可靠的方式,如服务器端验证等来确保安全性和准确性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值