zoukankan      html  css  js  c++  java
  • iOS应用内集成AppStore评分功能

    iOS应用内部实现App Store评分功能,笔着整理总结有三种方式,各位可根据自己需求自己选择。先介绍下评分功能实现的三种方式。

    1,通用方式通过App内部打开网页形式,跳转到AppStore编辑评论,可评分,可评论。

    优点:方便,快捷,不受系统版本限制,目前最常用的方式。

    缺点:内部网页形式加载缓慢,等待时间长,加载失败概率大。

    2,iOS 6.0以后 在app内部加载AppStore 展示app信息

    优点:展示速度比方法三块快

    缺点:不能直接跳转到评论编辑页面,需要手动点击评论+编辑评论

    3,iOS 10.0.3 新增应用内评分功能,调用系统方法评分。

    优点:无须跳转,应用内系统弹框,方便快速。

    缺点:只能评分,且一年只能使用三次弹框。

    开发步骤:

    导入头文件 #import

    1,iOS 10.0.3以后调用系统弹框评分

    iOS应用内集成AppStore评分功能

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    /**
     * 只能评分,不能编写评论
     * 有次数限制,一年只能使用三次
     * 使用次数超限后,需要跳转appstore
     */
    - (IBAction)systemComentBtnAction:(UIButton *)sender {
    if([SKStoreReviewController respondsToSelector:@selector(requestReview)]) {// iOS 10.3 以上支持
        //防止键盘遮挡
        [[UIApplication sharedApplication].keyWindow endEditing:YES];
        [SKStoreReviewController requestReview];
    }

    2,跳转到AppStore对应应用评论页面

    iOS应用内集成AppStore评分功能

    1
    2
    3
    4
    5
    6
    7
    /**
     * 可评分评论,无次数限制
     */
    - (IBAction)appStoreComentBtnAction:(UIButton *)sender {
    NSString  * nsStringToOpen = [NSString  stringWithFormat: @"itms-apps://itunes.apple.com/app/id%@?action=write-review",@"AppID"];//替换为对应的APPID
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:nsStringToOpen]];
    }

    3,iOS 6.0以后的方法,内部加载AppStore

    注:需签署代理

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    /**
     * 在APP内部加载App Store 展示APP信息,但不能直接跳转到评论编辑页面。
     * 再加载处App Store展示页面后,需要手动点击 评论→ 撰写评论
     */
    - (IBAction)webAppStoreBtnAction:(UIButton *)sender {
    SKStoreProductViewController *storeProductViewContorller = [[SKStoreProductViewController alloc] init];
    storeProductViewContorller.delegate = self;
    //加载App Store视图展示
    [storeProductViewContorller loadProductWithParameters:
      
     @{SKStoreProductParameterITunesItemIdentifier : @"APPID"} completionBlock:^(BOOL result, NSError *error) {
          
         if(error) {
              
         else {
              
             //模态弹出appstore
              
             [self presentViewController:storeProductViewContorller animated:YES completion:^{
                  
             }];
              
         }
          
     }];
    }
    // 代理方法
    - (void)productViewControllerDidFinish:(SKStoreProductViewController *)viewController {
    [self dismissViewControllerAnimated:YES completion:^{
         
    }];
    }
  • 相关阅读:
    JS方法集
    IOC 在Mvc中的使用
    ExtJS4 便捷三层开发模式
    Net Framework中的提供的常用委托类型
    作用域、作用域链理解
    Swing中弹出对话框的几种方式(转)
    程序员的价值观——经验是无价之宝(转)
    透过浏览器看HTTP缓存(转)
    模态窗口其实就是在当前窗口调用系统的消息循环,响应用户的操作,将相关的消息发送到对应的窗口(转)
    开发小结(转)
  • 原文地址:https://www.cnblogs.com/cui-cui/p/7803311.html
Copyright © 2011-2022 走看看