나는 빠른 음악 앱을 만들고 있습니다. 이 앱을 통해 사용자는 Apple Music 앱을 통해 Apple Music 구독을 통해 음악을 재생할 수 있습니다. 다음을 통해 사용자에게 Apple Music 구독이 있는지 확인할 수 있습니다.
SKCloudServiceController().requestCapabilities { (capability:SKCloudServiceCapability, err:Error?) in
guard err == nil else {
print("error in capability check is \(err!)")
return
}
if capability.contains(SKCloudServiceCapability.musicCatalogPlayback) {
print("user has Apple Music subscription")
}
if capability.contains(SKCloudServiceCapability.musicCatalogSubscriptionEligible) {
print("user does not have subscription")
}
}
그러나 어떤 이유로 누군가가 Apple Music에 가입하지만 장치에 Apple Music 앱이 다운로드되지 않는 시나리오가 있습니다. 사용자에게 구독이 있지만 장치가 아닌 경우에는 구독이 전혀없는 것처럼 처리해야합니다. 즉, Apple Music을 통해 음악을 재생할 수 없습니다.
따라서 Apple Music이 사용자의 장치에 있는지 확인하는 방법을 검색합니다. :이 답을 찾을 응용 프로그램은 스위프트를 사용하여 설치 여부 확인 과 함께 애플 음악의 URL 방식을 찾기위한이 자원을 하고 사용자가있는 경우 내가 확인할 수 있습니다 결론 모두 애플 뮤직에 가입 하고 를 통해 자신의 장치에 설치된 애플 뮤직 앱 :
SKCloudServiceController()requestCapabilities { (capability:SKCloudServiceCapability, err:Error?) in
guard err == nil else {
print("error in capability check is \(err!)")
return
}
if capability.contains(SKCloudServiceCapability.musicCatalogPlayback) && UIApplication.shared.canOpenURL(URL(string: "music://")!) {
print("user has Apple Music subscription and has the apple music app installed")
}
if capability.contains(SKCloudServiceCapability.musicCatalogSubscriptionEligible) || !UIApplication.shared.canOpenURL(URL(string: "music://")!) {
print("user does not have subscription or doesn't have apple music installed")
}
}
문제는 내 장치에서 Apple Music을 삭제 한 후에도 첫 번째 사례, 즉 인쇄 된 사례 user has Apple Music subscription and has the apple music app installed
가 여전히 호출되는 것입니다. 나는 변경시 때문에 올바른 URL 방식이 생각 "music://"
에 "musi://"
, 즉 인쇄물이하는 일, 두 번째 경우, user does not have subscription or doesn't have apple music installed
호출되고.
URL(string: "music://")
를 통해 삭제 된 Apple Music 으로 열려고 UIApplication.shared.open(URL(string: "music://")!)
하면 다음 경고가 표시됩니다.
그렇다면 URL(string: "music://")
Apple Music이 삭제 된 후에도 장치가 열 수 있다고 말하는 이유는 무엇입니까? 은 URL
열려 될 수있는,하지만 결과는 단순히 위의 경고의 표시인가? 사용자에게 기기에 Apple Music이 설치되어 있는지 확인하는 올바른 방법입니까? 사용자에게 기기에 Apple Music이 설치되어 있는지 확인할 수있는 방법이 있습니까? Apple이 사용자에게 Apple Music 앱을 삭제할 수있는 옵션을 제공하는 경우 개발자에게 앱이 설치되어 있는지 확인할 수있는 기능도 제공해야합니다.
URL(string: "music://trackId=1377813289")!
, URL(string: "music://track=1377813289")
, URL(string: "music://artist=562555")!
, URL(string: "music://artistId=562555")!
. 내가 딥 링크를 할 수 있었던 유일한 방법은과 같은 것을 사용하는 URL(string: "https://music.apple.com/us/artist/562555")!
것이지만 이것이 HTTP이기 때문에 분명히 도움이되지 않습니다.
UIApplication.shared.canOpenURL(URL(string: "music://")!)
돌아 오는 true
것입니다. false
앱이 삭제되면 돌아와야 합니다. URL 체계를 허용 목록에 추가해도이 문제가 해결되지 않습니다 (시도했습니다).
URL(string: "music://trackID=3214534")
. 이 명시 적 URL 체계는 일반적인 방식으로 처리되지만app restore
경고를 트리거하지는 않습니다 .