private async void RequestReviewArgs() { // wait a bit before requesting await Task.Delay(2000); var requestReview = false; if (UIDevice.CurrentDevice.CheckSystemVersion(10, 3)) { // In-App request SKStoreReviewController.RequestReview(); } else { //NOTE: untested behaviour is emitted //requestReview = await UserDialogs.Instance.ConfirmAsync( // message: "Fornøyd med appen? Vi vil gjerne ha din vurdering så vi kan bli bedre", // okText: "Gi vurdering", // cancelText: "Hopp over"); //if (requestReview) //{ // if (UIDevice.CurrentDevice.CheckSystemVersion(10, 3)) // { // SKStoreReviewController.RequestReview(); // } // CrossStoreReview.Current.OpenStoreReviewPage("1447263129"); //} } Analytics.TrackEvent(TrackingEvents.RequestedReview, new TrackingEvents.RequestedReviewArgs(requestReview)); Settings.HasRequestedReview = true; }
internal static async Task PlatformTryOpenRatingPageAsync(Func <Task <bool> >?runBeforeOpenAsync = default) { var systemVersion = ParseVersion(UIDevice.CurrentDevice.SystemVersion); if (systemVersion >= new Version(10, 3)) { SKStoreReviewController.RequestReview(); } else if (runBeforeOpenAsync != null && !await runBeforeOpenAsync()) { // Don't do anything if the runBeforeOpen function returned false } else if (systemVersion >= new Version(8, 0)) { UIApplication.SharedApplication.OpenUrl(new NSUrl(AppStoreReviewUrlIOS8.Replace("YOUR_APP_ID", NSBundle.MainBundle.BundleIdentifier))); } else if (systemVersion >= new Version(7, 0)) { UIApplication.SharedApplication.OpenUrl(new NSUrl($"{AppStoreReviewUrlIOS7}{NSBundle.MainBundle.BundleIdentifier}")); } else { UIApplication.SharedApplication.OpenUrl(new NSUrl($"{AppStoreReviewUrl}{NSBundle.MainBundle.BundleIdentifier}")); } }
/// <summary> /// Requests an app review. /// </summary> public Task RequestReview(bool testMode) { #if __IOS__ if (IsiOS103) { if (IsiOS14) { var windowScene = UIApplication.SharedApplication?.ConnectedScenes?.ToArray <UIScene>()?.FirstOrDefault(x => x.ActivationState == UISceneActivationState.ForegroundActive) as UIWindowScene; if (windowScene != null) { SKStoreReviewController.RequestReview(windowScene); return(Task.CompletedTask); } } SKStoreReviewController.RequestReview(); } #elif __MACOS__ using var info = new NSProcessInfo(); if (ParseVersion(info.OperatingSystemVersion.ToString()) >= new Version(10, 14)) { SKStoreReviewController.RequestReview(); } #endif return(Task.CompletedTask); }
public void StoreReview() { if (DeviceInfo.Version >= new Version(10, 14)) { SKStoreReviewController.RequestReview(); } }
public override bool FinishedLaunching(UIApplication uiApplication, NSDictionary launchOptions) { Forms.Init(); CarouselViewRenderer.Init(); AnimationViewRenderer.Init(); CachedImageRenderer.Init(); // TODO dummy to prevent the dll being trashed by the linker. // Should be a better solution... var foo = new FFImageLoading.Svg.Forms.SvgCachedImage(); UIApplication.SharedApplication.SetStatusBarHidden(false, false); LoadApplication(new BeenPwnedApp()); UIApplication.SharedApplication.SetStatusBarStyle(UIStatusBarStyle.LightContent, false); #if !DEBUG // Periodically let the app ask for a review if (UIDevice.CurrentDevice.CheckSystemVersion(10, 3)) { SKStoreReviewController.RequestReview(); } #endif return(base.FinishedLaunching(uiApplication, launchOptions)); }
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { // Request a review from the user SKStoreReviewController.RequestReview(); return(true); }
/// <summary> /// Requests an app review. /// </summary> public void RequestReview() { #if __IOS__ if (IsiOS103) { SKStoreReviewController.RequestReview(); } #endif }
public void PresentIfAppropriate() { try { if (ShouldPresent) { defs.SetBool(true, shownKey); SKStoreReviewController.RequestReview(); } } catch (Exception ex) { Log.Error(ex); } }
/// <summary> /// Requests an app review. /// </summary> public Task RequestReview(bool testMode) { #if __IOS__ if (IsiOS103) { SKStoreReviewController.RequestReview(); } #elif __MACOS__ using var info = new NSProcessInfo(); if (ParseVersion(info.OperatingSystemVersion.ToString()) >= new Version(10, 14)) { SKStoreReviewController.RequestReview(); } #endif return(Task.CompletedTask); }
public override bool FinishedLaunching(UIApplication app, NSDictionary options) { Window = new UIWindow(UIScreen.MainScreen.Bounds); var setup = new Setup(this, Window); setup.Initialize(); var startup = Mvx.Resolve <IMvxAppStart>(); startup.Start(); iRate.SharedInstance.DaysUntilPrompt = 3; iRate.SharedInstance.UsesUntilPrompt = 5; iRate.SharedInstance.PromptForNewVersionIfUserRated = true; iRate.SharedInstance.ShouldPromptForRating = (arg1, arg2) => { if (UIDevice.CurrentDevice.CheckSystemVersion(10, 3)) { SKStoreReviewController.RequestReview(); return(false); } return(true); }; Window.MakeKeyAndVisible(); SetSettings(); NSNotificationCenter.DefaultCenter.AddObserver(UIApplication.DidChangeStatusBarOrientationNotification, n => { UpdateDeviceMargins(); }); NSNotificationCenter.DefaultCenter.AddObserver(UIApplication.DidChangeStatusBarFrameNotification, n => { UpdateDeviceMargins(); }); UpdateDeviceMargins(); _finishedLaunching = true; return(true); }
public void PresentIfAppropriate() { try { var osok = UIDevice.CurrentDevice.CheckSystemVersion(10, 3); var shouldPresent = osok && !Shown && NumPositiveActions >= MinNumPositiveActions; Log.Info($"Present Review (os={osok}, s={Shown}, n={NumPositiveActions}) = {shouldPresent}"); if (shouldPresent) { defs.SetBool(true, shownKey); SKStoreReviewController.RequestReview(); } } catch (Exception ex) { Log.Error(ex); } }
/// <summary> /// Open iOS in-app review popup of your current application. /// </summary> public Task PerformInAppRateAsync() { var tcs = new TaskCompletionSource <bool>(); if (UIDevice.CurrentDevice.CheckSystemVersion(10, 3)) { SKStoreReviewController.RequestReview(); tcs.SetResult(true); } else { DisplayErrorAlert("Your current iOS version doesn't support in-app rating."); tcs.SetResult(false); } return(tcs.Task); }
public void RateApp() { if (UIDevice.CurrentDevice.CheckSystemVersion(10, 3)) { SKStoreReviewController.RequestReview(); } else { string storeUrl = $@"itms-apps://itunes.apple.com/app/{AppDeviceInfo.PackageName}?action=write-review"; try { using var uri = new NSUrl(storeUrl); UIApplication.SharedApplication.OpenUrl(uri); } catch (Exception ex) { // Here you could show an alert to the user telling that App Store was unable to launch Console.WriteLine(ex.Message); } } }
public Task RequestReviewAsync() { SKStoreReviewController.RequestReview(); return(Task.CompletedTask); }
public void AskForRating() { SKStoreReviewController.RequestReview(); }
/// <inheritdoc /> public void RateApp() { SKStoreReviewController.RequestReview(); }
public void LoadAppRatings() { SKStoreReviewController.RequestReview(); }