Navigator: phương thức canShare()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Phương thức canShare() của giao diện Navigator trả về true nếu lệnh gọi tương đương tới navigator.share() thành công.

Phương thức trả về false nếu dữ liệu không thể validated. Những lý do khiến dữ liệu có thể không hợp lệ bao gồm:

  • Tham số data đã bị bỏ qua hoặc chỉ chứa các thuộc tính có giá trị không xác định. Lưu ý rằng mọi thuộc tính không được tác nhân người dùng nhận ra sẽ bị bỏ qua.
  • URL có định dạng sai.
  • File được chỉ định nhưng việc triển khai không hỗ trợ chia sẻ file.
  • Việc chia sẻ dữ liệu được chỉ định sẽ bị tác nhân người dùng coi là "chia sẻ thù địch".

Web Share API được kiểm soát bởi chính sách cấp phép web-share. Phương thức canShare() sẽ trả về false nếu quyền được hỗ trợ nhưng chưa được cấp.

Cú pháp

js
canShare()
canShare(data)

Thông số

data Optional

Đối tượng xác định dữ liệu chia sẻ để kiểm tra. Thông thường, một đối tượng có cùng thuộc tính sẽ được chuyển tới navigator.share() nếu lệnh gọi này trả về true.

Các thuộc tính mà tác nhân người dùng không xác định sẽ bị bỏ qua; dữ liệu chia sẻ chỉ được đánh giá dựa trên các thuộc tính được tác nhân người dùng hiểu. Tất cả các thuộc tính đều là tùy chọn nhưng phải chỉ định ít nhất một thuộc tính dữ liệu đã biết, nếu không phương thức sẽ trả về false.

Các giá trị có thể là: - url Optional - : Một chuỗi đại diện cho một URL được chia sẻ. - text Optional - : Một chuỗi đại diện cho văn bản được chia sẻ. - title Optional - : Một chuỗi đại diện cho tiêu đề được chia sẻ. - files Optional - : Một mảng các đối tượng File đại diện cho các file sẽ được chia sẻ.

Giá trị trả về

Trả về true nếu data được chỉ định có thể được chia sẻ với Navigator.share(), nếu không thì false.

Ví dụ

Gửi URL MDN

Ví dụ sử dụng navigator.canShare() để kiểm tra xem navigator.share() có thể chia sẻ dữ liệu được chỉ định hay không.

HTML

HTML chỉ tạo một đoạn văn để hiển thị kết quả kiểm tra.

html
<p class="result"></p>

JavaScript

js
let shareData = {
  title: "MDN",
  text: "Learn web development on MDN!",
  url: "https://mdn.go-mizu.dev",
};

const resultPara = document.querySelector(".result");

if (!navigator.canShare) {
  resultPara.textContent = "navigator.canShare() not supported.";
} else if (navigator.canShare(shareData)) {
  resultPara.textContent =
    "navigator.canShare() supported. We can use navigator.share() to send the data.";
} else {
  resultPara.textContent = "Specified data cannot be shared.";
}

Kết quả

Hộp bên dưới sẽ nêu rõ liệu navigator.canShare() có được hỗ trợ trên trình duyệt này hay không và nếu có thì chúng tôi có thể sử dụng navigator.share() để chia sẻ dữ liệu được chỉ định hay không:

Ví dụ kiểm tra tính năng

Tính năng phương pháp này kiểm tra xem một thuộc tính dữ liệu cụ thể có hợp lệ và có thể chia sẻ được hay không. Nếu được sử dụng với một thuộc tính data duy nhất, nó sẽ chỉ trả về true nếu thuộc tính đó hợp lệ và có thể được chia sẻ trên nền tảng.

Mã bên dưới minh họa việc xác minh rằng thuộc tính dữ liệu có được hỗ trợ hay không.

js
// Feature that may not be supported
let testShare = { someNewProperty: "Data to share" };

// Complex data that uses new key
const shareData = {
  title: "MDN",
  text: "Learn web development on MDN!",
  url: "https://mdn.go-mizu.dev",
  someNewProperty: "Data to share",
};

// Test that the key is valid and supported before sharing
if (navigator.canShare(testShare)) {
  // Use navigator.share() to share 'shareData'
} else {
  // Handle case that new data property can't be shared.
}

Thông số kỹ thuật

Specification
Web Share API
# canshare-data-method

Khả năng tương thích của trình duyệt

Xem thêm