Better SKCloudServiceSetupViewController action handling
| Originator: | jay.whitsitt | ||
| Number: | rdar://30265754 | Date Originated: | 30 Jan 2017 |
| Status: | Open | Resolved: | |
| Product: | iOS + SDK | Product Version: | Music |
| Classification: | Enhancement | Reproducible: | N/A |
Area:
Music
Summary:
As of 10.3 b1, there's no way to tell if the SKCloudServiceSetupViewController delegate method is called because the user tapped the Cancel button or if they successfully signed up for the Apple Music trial. When the delegate method is called, we have to check whether they now have the SKCloudServiceCapabilityMusicCatalogPlayback regardless of if the user cancelled, completed the flow, or errored in order to tell the current state. This makes it impossible to handle the experience differently if the user tapped Cancel vs if an error occurred.
It would greatly improve the user experience of the signup process if one of these options happened:
1. There were two delegate methods, one for if the user cancelled the flow and one for if the user successfully completed the flow.
2. There was a BOOL on the existing delegate method that said whether the user cancelled.
When referring to the "existing delegate method", I'm talking about this one:
- (void)cloudServiceSetupViewControllerDidDismiss:(SKCloudServiceSetupViewController *)cloudServiceSetupViewController
Steps to Reproduce:
NSDictionary<SKCloudServiceSetupOptionsKey, id> *options = @{ SKCloudServiceSetupOptionsActionKey : SKCloudServiceSetupActionSubscribe,
SKCloudServiceSetupOptionsAffiliateTokenKey : kiTunesAffiliateCode };
[setupController loadWithOptions:options completionHandler:^(BOOL result, NSError * _Nullable error) {
if (result) {
[weakSelf.viewController presentViewController:setupController animated:YES completion:nil];
// wait for delegate call
} else {
// something bad happened
}
}];
Expected Results:
One or more delegate methods that let me know if the user cancelled, successfully signed up, or errored.
Actual Results:
I'm just told that the flow is done, not the current state.
Comments
Please note: Reports posted here will not necessarily be seen by Apple. All problems should be submitted at bugreport.apple.com before they are posted here. Please only post information for Radars that you have filed yourself, and please do not include Apple confidential information in your posts. Thank you!