5

Tôi muốn mở Windows Store của ứng dụng hiện tại của mình (để người dùng có thể xếp hạng/đánh giá ứng dụng). Khi làm như vậy, tôi cần lấy ID ứng dụng. Tuy nhiên, tôi đi qua số this article in SO cho biết CurrentApp.AppId mất rất nhiều thời gian và cung cấp ID gói làm thay thế. Trước đây tôi chưa từng phát hành ứng dụng trên Windows Store và không thể thử nghiệm ứng dụng ngay bây giờ mà không có ứng dụng đã phát hành/xuất bản trên Windows Store.Id AppId và Gói có giống hệt nhau không?

Có ai có thể giúp tôi xác nhận về hai dòng mã sau không?

 //var appId = CurrentApp.AppId.ToString(); 
     var appId = Windows.ApplicationModel.Package.Current.Id; 

Trả lời

4

Không, AppIdPackageId không giống nhau.

Như bạn có thể thấy AppId là cấu trúc Guid trong khi PackageId là một lớp. AppId được tạo bởi Windows Store khi ứng dụng của bạn đã được chứng nhận niêm yết trong Windows Store, trong khi PackageId cung cấp thông tin nhận dạng gói, chẳng hạn như tên, phiên bản và nhà xuất bản có thể được tìm thấy trong tệp kê khai ứng dụng của bạn.

AppId có liên quan đến Windows Store, vì vậy lần đầu tiên khi bạn cố gắng lấy nó, có thể mất một thời gian. Nhưng điều này sẽ không quá dài, trong thử nghiệm của tôi là khoảng 1 giây. Sau này, khi bạn cố gắng để có được AppId một lần nữa, nó sẽ rất nhanh chóng. (Tôi nghĩ rằng nó đã được lưu trữ trong máy địa phương vì giá trị của nó là bất biến.)

Tuy nhiên, nếu bạn muốn khởi chạy trang chi tiết sản phẩm (PDP) cho một sản phẩm. ID sản phẩm được đề xuất cho khách hàng trên Windows 10. Và ID sản phẩm không phải là AppId.

Để có được ID sản phẩm, như Launch the Windows Store app nói:

Những giá trị này có thể được tìm thấy trong bảng điều khiển của Windows Dev Center trên App identity trang trong phần Quản lý ứng dụng cho mỗi ứng dụng.

Để có được nó lập trình, chúng ta có thể cố gắng sử dụng CurrentApp.LinkUri bất động sản, khách sạn này trả về URI của trang danh sách của ứng dụng trong Windows Store như:

https://www.microsoft.com/store/apps/<your app's Product ID>.

ID sản phẩm cũng là bất biến, vì vậy tôi nghĩ bạn có thể tìm thấy nó trong bảng điều khiển Windows Dev Center và mã hóa nó trong ứng dụng của bạn.

+0

Có thể hoàn thành công việc, ví dụ trong 'C#' với 'var id = uriLink.Substring (uriLink.LastIndexOf ('/') + 1);' – bunkerdive

1

này sẽ giúp bạn có những gì bạn muốn:

await Launcher.LaunchUriAsync(new Uri($"ms-windows-store:REVIEW?PFN={Package.Current.Id.FamilyName}")); 

Cửa hàng sẽ xử lý các giao thức ms-windows-store:, và các đối số sẽ trỏ nó đến "Xếp hạng và đánh giá" của ứng dụng của bạn phần.

+0

Cảm ơn bạn rất nhiều. Đây thực sự là những gì tôi cần. Tuy nhiên, để tham khảo trong tương lai, tôi rất thích nếu có một câu trả lời thực sự cho câu hỏi của tôi. Nếu không có ngày mai, tôi sẽ thay đổi câu hỏi của tôi và đánh dấu câu hỏi của bạn là câu trả lời. –

+1

Ngoài ra, theo Điều MSDN này: https://msdn.microsoft.com/en-us/windows/uwp/launch-resume/launch-store-app?f=255&MSPPError=-2147217396 'Khởi chạy trang chi tiết sản phẩm (PDP) cho một sản phẩm. ID sản phẩm được khuyến nghị cho khách hàng trên Windows 10, nhưng các cách trước đó để thực hiện nó (ví dụ: PFN) vẫn hoạt động.' Tôi cho biết tôi nên sử dụng ID sản phẩm? –

Các vấn đề liên quan