Tạo bố cục cửa hàng tùy chỉnh

Managed Google Play cho phép bạn thiết kế và tạo bố cục cửa hàng cho doanh nghiệp của mình khách hàng. Bạn có thể tuỳ chỉnh bố cục cửa hàng bằng cách nhóm ứng dụng thành nhiều cụm, thiết lập các trang cửa hàng và thêm các liên kết nhanh cung cấp quyền truy cập vào nhiều trong cửa hàng.

Tất cả ứng dụng được cung cấp cho người dùng cuối trong Managed Google Play trước tiên phải được quản trị viên CNTT phê duyệt, phê duyệt cho người dùng và được thêm vào một cụm. (Xem bài viết Thêm ứng dụng vào bố cục cửa hàng để biết thêm thông tin chi tiết về điều này quá trình).

Các thành phần của bố cục cửa hàng

Bố cục cửa hàng thường bao gồm một loạt trang được hiển thị cho người dùng Managed Google Play. Mỗi trang có thể chứa một hoặc nhiều nhóm ứng dụng, được gọi là thành cụm. Mỗi cụm chứa một hoặc nhiều ứng dụng.

Cụm cho phép bạn nhóm các ứng dụng có liên quan. Ví dụ: bạn có thể tạo một trang cho ứng dụng liên quan đến công việc có chứa cụm Essentials (Kiến thức cơ bản) và cụm Nhận mọi thứ Xong. Cụm Essentials có thể chứa các ứng dụng như Notepad+, Google Trang trình bày, v.v. Cụm Hoàn thành công việc có thể bao gồm các ứng dụng như OneNote, Wunderlist, Any.do cùng các dịch vụ theo dõi khác, lịch và ứng dụng lên kế hoạch cuộc họp (xem Hình 1).

Khi tạo một trang, bạn cũng có thể thêm tối đa 10 đường liên kết nhanh ở đầu . Đường liên kết nhanh cho phép người dùng chuyển đến các trang khác. Ví dụ: Hình 1 cho thấy các đường liên kết nhanh cho các trang Kinh doanh, Truyền thông và Tài chính.

Hình 1 cho thấy một số thành phần chính của bố cục cửa hàng như hiển thị trên thiết bị:

Màn hình mẫu từ thiết bị của người dùng, cho thấy các thành phần của một cửa hàng
    bao gồm các liên kết nhanh, trang và cụm ứng dụng.
Hình 1 – Màn hình mẫu từ thiết bị của người dùng
  • Đường liên kết nhanh: Đường liên kết không bắt buộc giúp bạn truy cập vào các trang khác. Nhanh có chứa tên của trang mà các đường liên kết đó trỏ đến.
  • Trang: Một trang được đặt tên, có thể cuộn theo chiều dọc bao gồm các cụm ứng dụng.
  • Cụm (còn gọi là bộ sưu tập): Một tập hợp có tên, có thể cuộn theo chiều ngang băng chuyền ứng dụng. Mở rộng ra toàn trang nếu trang chứa một cụm duy nhất (hoặc nhấp vào "Khác" để cuộn theo chiều dọc).

Hạn chế của các phần tử bố cục cửa hàng

Khi thiết kế và triển khai bố cục cửa hàng cho khách hàng, hãy đảm bảo bạn cần ghi nhớ các giới hạn này (hầu hết các giới hạn này là do các nguyên tắc thiết kế giao diện người dùng hợp lý):

  • 100 ứng dụng trên mỗi cụm
  • 30 cụm trên mỗi trang
  • 10 đường liên kết nhanh trên mỗi trang
  • 100 trang cho mỗi cửa hàng
  • 1.000 sản phẩm (ứng dụng được phê duyệt) cho mỗi doanh nghiệp

Tên cụm và trang đã bản địa hoá

Bố cục cửa hàng Managed Google Play hỗ trợ tên được bản địa hóa cho các trang cửa hàng và lưu trữ các cụm. Khi tạo một trang hoặc cụm, bạn cung cấp danh sách ngôn ngữ được hỗ trợ như thẻ ngôn ngữ IETF và tên được bản địa hoá có liên quan. Nếu ngôn ngữ của người dùng không nằm trong danh sách được hỗ trợ, hệ thống sẽ chọn ngôn ngữ gần nhất phù hợp. Ví dụ: nếu không có en-GB, hệ thống sẽ chọn en-US thay thế. Nếu không có kết quả phù hợp nào, hệ thống sẽ chọn tên trên danh sách.

Thêm ứng dụng vào bố cục cửa hàng

Tất cả các ứng dụng có trong policy.productPolicy đều được thêm tự động nếu một Enterprise đang sử dụng bố cục cửa hàng cơ bản. Nếu doanh nghiệp đang sử dụng một bố cục cửa hàng, các ứng dụng chỉ có trong bố cục tuỳ chỉnh và danh sách productPolicy sẽ được hiển thị trên thiết bị. Tất cả các mục có trong policy.productPolicy đều là có thể tìm kiếm được trong Cửa hàng Play.

Để người dùng cuối cài đặt ứng dụng từ cửa hàng Managed Google Play, ứng dụng phải tương thích với thiết bị của người dùng và đáp ứng các điều kiện sau:

  • Đã thêm vào danh sách cho phép của người dùng (sử dụng policy.productPolicy trên thiết bị tài nguyên) VÀ policy.productAvailabilityPolicy được đặt thành WHITELIST, HOẶC policy.productAvailabilityPolicy được đặt thành ALL (cho phép tìm kiếm và cài đặt bất kỳ ứng dụng nào).

Người dùng có thể sử dụng tính năng tìm kiếm tích hợp sẵn trong Managed Google Play để tìm và cài đặt bất kỳ ứng dụng nào đáp ứng các điều kiện này. Tuy nhiên, ứng dụng sẽ chỉ hiển thị trong bố cục cửa hàng cơ bản hoặc nếu bạn đã thêm ứng dụng vào collection/cluster.

Ứng dụng bị thu hồi phê duyệt

Quản trị viên có thể huỷ phê duyệt một ứng dụng (thu hồi quyết định phê duyệt ứng dụng đó) bất cứ lúc nào. Ứng dụng có phê duyệt bị thu hồi vẫn có thể được thêm vào cụm và danh sách cho phép, nhưng người dùng sẽ không thấy chúng hoặc không thể cài đặt chúng từ ứng dụng Google Managed Cửa hàng Play. Nếu một ứng dụng đã bị thu hồi phê duyệt được phê duyệt lại, ứng dụng đó sẽ được phê duyệt tiếp tục được cung cấp cho người dùng trong cửa hàng Managed Google Play.

Bố cục cửa hàng cơ bản

Theo mặc định, bố cục cửa hàng cơ bản được bật cho từng khách hàng của bạn. Chiến lược phát hành đĩa đơn bố cục cơ bản có 1 trang và 1 cụm, hiển thị tối đa 1.000 ứng dụng. Ứng dụng đang bật trang được sắp xếp theo thứ tự giá trị product ID. Nếu bạn tạo một bố cục cửa hàng (bằng cách đặt storeLayoutType ="custom"), bố cục cửa hàng cơ bản là tắt.

Tạo bố cục cửa hàng tuỳ chỉnh

EMM có thể tạo bố cục cửa hàng tuỳ chỉnh cho từng khách hàng doanh nghiệp. Bố cục cửa hàng tuỳ chỉnh cho phép bạn thiết lập các cụm ứng dụng, thêm các cụm cụ thể vào và xác định các liên kết nhanh. Bởi vì bạn xác định các ứng dụng tạo nên mỗi , bạn có thể dùng các cụm để nhóm các ứng dụng có liên quan với nhau (ví dụ: "Essentials" và "Hoàn thành công việc"). Người dùng chỉ thấy những ứng dụng có quyền đã được quản trị viên CNTT chấp nhận.

Tài liệu tham khảo về API EMM của Google Play có thông tin về các tài nguyên và mà bạn sử dụng để tạo bố cục cửa hàng tuỳ chỉnh, cụ thể là StorelayoutpagesStorelayoutcluster. Các bước được nêu trong dưới đây sẽ hướng dẫn bạn qua một ví dụ cơ bản.

Nhiệm vụ lập trình

Để tạo bố cục cửa hàng Google Play được quản lý tùy chỉnh cho khách hàng của mình, bạn phải:

  1. Tạo trang
  2. Tạo một hoặc nhiều cụm bên trong các trang
  3. Đặt trang chủ

Tối thiểu, bạn phải tạo ít nhất một trang bao gồm một cụm cho bố cục cửa hàng và cụm phải chứa ít nhất một ứng dụng. Bạn cũng phải đặt trang chủ. Nếu tạo nhiều trang, bạn có tuỳ chọn đặt chế độ cài đặt để hiển thị ở đầu mỗi trang.

Các nhiệm vụ lập trình để tạo bố cục tuỳ chỉnh trên Cửa hàng Play được quản lý là được mô tả bên dưới, tiếp theo là ví dụ hoàn chỉnh về bố cục cửa hàng.

Tạo trang

Trang bao gồm một hoặc nhiều cụm. Mỗi cụm chứa ít nhất một ứng dụng. Các trang này được tạo cho các doanh nghiệp cụ thể, vì vậy, bạn phải gọi các hoạt động trên phiên bản doanh nghiệp cụ thể (enterpriseId). Bạn có thể cung cấp tên và thông tin bản địa hoá cho mỗi trang, cùng với danh sách pageId mà người dùng có thể truy cập từ trang. Trang mới được tạo bằng insert hoạt động (Storelayoutpages.insert) như sau:

public StorePage createPage(String enterpriseId, String name)
    throws IOException {
  List<LocalizedText> names =
      ImmutableList.of(
          new LocalizedText().setLocale("en").setText(name));
  StorePage storePage = new StorePage();
  storePage.setName(names);
  return androidEnterprise.storelayoutpages()
    .insert(enterpriseId, storePage)
    .execute();
}

Tạo một cụm

Các cụm chứa các nhóm ứng dụng. Cụm này được tạo trước, sau đó có thể được thêm vào trang. Để tạo một cụm, hãy gọi toán tử insert của Storelayoutcluster và chuyển giá trị cho các thuộc tính sau:

  • Danh sách các productId mà cụm cần có (ví dụ: productId cho Gmail là app:com.google.android.gm)
  • Tên thân thiện với người dùng cho cụm, chẳng hạn như Ví dụ: Đã hoàn thành\n
  • enterpriseId cần liên kết với cụm đó
  • pageId (đối với trang chứa cụm)
  • Vị trí của cụm trên trang (thứ nhất, thứ hai, v.v.)

Ví dụ:

private String insertCluster(String enterpriseId, String pageId, String name,
    List<String> productIds, String orderInPage) throws IOException {
  StoreCluster storeCluster = new StoreCluster();
  storeCluster.setName(
      ImmutableList.of(
          new LocalizedText().setLocale("en").setText(name)));
  storeCluster.setProductId(productIds);
  storeCluster.setOrderInPage(orderInPage);
  return androidEnterprise.storelayoutclusters()
    .insert(enterpriseId, pageId, storeCluster)
    .execute()
    .getId();
}

Đặt trang chủ

Trang đầu tiên hiển thị trong Managed Google Play trên thiết bị của người dùng là trang chủ. Trong vai trò EMM, bạn xác định trang chủ cho từng khách hàng của mình. Chiến lược phát hành đĩa đơn luôn hiển thị, ngay cả khi trang trống và không thể xoá.

Trong ví dụ này, mã nhận dạng của trang chủ được tìm nạp cho enterpriseId:

public StoreLayout getStoreLayout(String enterpriseId) throws IOException {
  return androidEnterprise
    .enterprises()
    .getStoreLayout(enterpriseId)
    .execute();
}

Ví dụ tiếp theo này đặt trang chủ cho khách hàng bằng cách cung cấp khách hàng enterpriseIdpageId của khách hàng đó. trang chủ:

public StoreLayout setStoreLayout(String enterpriseId, String homepageId)
    throws IOException {
  StoreLayout storeLayout = new StoreLayout();
  storeLayout.setHomepageId(homepageId);

  return androidEnterprise
    .enterprises()
    .setStoreLayout(enterpriseId, storeLayout)
    .execute();
}

Đường liên kết nhanh xuất hiện ở đầu mỗi trang, giúp người dùng dễ dàng điều hướng giữa các trang trong cửa hàng. Để sử dụng các đường liên kết nhanh, trước tiên hãy lấy pageId cho (do insert trả về) và thêm đường liên kết đến trang. Ví dụ: nếu bạn tạo 3 trang có pageIdp1, p2, p3, bạn có thể thêm các liên kết nhanh từ trang đầu tiên sang hai trang còn lại với:

StorePage storePage = new StorePage();
storePage.setName(
    ImmutableList.of(new LocalizedText().setLocale("en").setText(title)));
storePage.setLink(ImmutableList.of("p2", "p3");
return androidEnterprise.storelayoutpages()
  .update(enterpriseId, "p1", storePage)
  .execute();

Ví dụ:

Sau đây là một ví dụ hoàn chỉnh về cách tạo một cửa hàng cơ bản gồm ba các trang được liên kết với nhau. Các cụm ứng dụng tương tự nhau tạo thành mỗi trang. Mỗi trang là được tạo bằng cách chỉ định enterpriseId của khách hàng và đặt trang name để lấy pageId mà sau đó được dùng để tạo một liên kết nhanh đến .

// Create a basic page and return the pageId.
private String insertPage(String enterpriseId, String title,
    List<String> links) throws IOException {
  List<LocalizedText> names =
      ImmutableList.of(new LocalizedText().setLocale("en").setText(title));
  StorePage page = new StorePage();
  page.setName(names);
  page.setLink(links);
  return enterprise.storelayoutpages().insert(enterpriseId, page).execute().getId();
}

public StoreLayout setStoreLayout(String enterpriseId, String homepageId)
    throws IOException {
  StoreLayout storeLayout = new StoreLayout();
  storeLayout.setHomepageId(homepageId);

  return androidEnterprise
      .enterprises()
      .setStoreLayout(enterpriseId, storeLayout)
      .execute();
}

private String insertCluster(String enterpriseId, String pageId, String name,
    List<String> productIds, String orderInPage) throws IOException {
  StoreCluster cluster = new StoreCluster();
  List<LocalizedText> names =
      ImmutableList.of(new LocalizedText().setLocale("en").setText(name));
  cluster.setName(names);
  cluster.setProductId(productIds);
  cluster.setOrderInPage(orderInPage);
  return androidEnterprise.storelayoutclusters()
      .insert(enterpriseId, pageId, cluster)
      .execute()
      .getId();
}

private void updatePage(String enterpriseId, String pageId, String title,
    List<String> links) throws IOException {
  List<LocalizedText> names =
      ImmutableList.of(new LocalizedText().setLocale("en").setText(title));
  StorePage page = new StorePage();
  page.setName(names);
  page.setLink(links);
  enterprise.storelayoutpages()
      .update(enterpriseId, pageId, page).execute();
}

private void makeStore(String enterpriseId) throws IOException {
  // Create the pages.
  String page1 = insertPage(enterpriseId, "Home");
  String page2 = insertPage(enterpriseId, "Productivity");
  String page3 = insertPage(enterpriseId, "Accounting");

  // Set the homepage (page that displays by default when store is opened).
  setStoreLayout(enterpriseId, page1);

  // Add the links to the pages. This makes a small tree.
  updatePage(enterpriseId, page1, "Home", ImmutableList.of(page2, page3));
  updatePage(enterpriseId, page2, "Productivity", ImmutableList.of(page1));
  updatePage(enterpriseId, page3, "Accounting", ImmutableList.of(page1));

  // Add clusters with contents.
  insertCluster(
      enterpriseId,
      page1,
      "Getting Things Done",
      ImmutableList.of(
          "app:com.mytodolist",
          "app:com.google.android.gm",
          "app:com.google.android.docs"),
      "1");
  insertCluster(
      enterpriseId,
      page1,
      "Strategy",
      ImmutableList.of(
          "app:com.myplanner",
          "app:com.stratego"),
      "2");
  insertCluster(
      enterpriseId,
      page2,
      "Editors",
      ImmutableList.of(
          "app:com.myeditor",
          "app:com.betteredit",
          "app:com.lazyguy"),
      "1");
  insertCluster(
      enterpriseId,
      page2,
      "Time Management",
      ImmutableList.of(
          "app:com.mytimetracker",
          "app:com.lazygal",
          "app:com.lazyguy"),
      "2");
  insertCluster(
      enterpriseId,
      page2,
      "Accounting",
      ImmutableList.of(
          "app:com.mymoney",
          "app:com.taxpro",
          "app:com.balances"),
      "3");
}