美文网首页
Unity 实现IOS应用内弹出评分框

Unity 实现IOS应用内弹出评分框

作者: Razy西南 | 来源:发表于2021-10-25 15:54 被阅读0次
    ios.jpeg

    第一种最简单的方式直接跳转到AppStore 应用详情页,用户去评分。

    #if UNITY_IPHONE || UNITY_EDITOR
    const string APP_ID = [you app id];
    var url = string.Format("itms-apps://ax.itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReviews?type=Purple+Software&id={0}", APP_ID);
    Application.OpenURL(url);
    #endif
    

    AppID就是产品id,后台可查看。

    第二种,直接在应用内弹出评分框,不用跳转到AppStore。
    首先创建一个.h和.mm文件,后缀自己添加,代码为固定代码。
    下面是头文件代码:

    //  UnityStoreKit.h
    //  UnityStoreKit
    //
    //  Created by mac on 2017/12/14.
    //  Copyright © 2017年 mac. All rights reserved.
    //
     
    #import <Foundation/Foundation.h>
    #import <StoreKit/StoreKit.h>
     
    @interface UnityStoreKit : NSObject
     
    @end
    

    下面是.mm代码:

    //
    //  UnityStoreKit.m
    //  UnityStoreKit
    //
    //  Created by mac on 2017/12/14.
    //  Copyright © 2017年 mac. All rights reserved.
    //
     
    #import "UnityStoreKit.h"
     
     
    @implementation UnityStoreKit
    #if defined(__cplusplus)
    extern "C"{
    #endif
        void _goComment()
        {
            if([SKStoreReviewController respondsToSelector:@selector(requestReview)]) {// iOS 10.3 以上支持
                [SKStoreReviewController requestReview];
            } else { // iOS 10.3 之前的使用这个
                NSString *appId = @"1280215473";
                NSString  * nsStringToOpen = [NSString  stringWithFormat: @"itms-apps://itunes.apple.com/app/id%@?action=write-review",appId];//替换为对应的APPID
                [[UIApplication sharedApplication] openURL:[NSURL URLWithString:nsStringToOpen]];
            }
        }
    #if defined(__cplusplus)
    }
    #endif
     
    @end
    

    这两个文件放在Unity里面的plugins/IOS文件夹下。

    创建一个UnityStoreKitMgr,管理是否弹出评分框:

    using UnityEngine;
    using System.Collections;
    using System.Runtime.InteropServices;
    public class UnityStoreKitMgr : MonoBehaviour {
     
        private static UnityStoreKitMgr _instance;
        public static UnityStoreKitMgr Instance{
            get{
                if(_instance==null)
                {
                    GameObject go=  new GameObject ("UnityStoreKitMgr");
                    _instance=go.AddComponent<UnityStoreKitMgr> ();
                    DontDestroyOnLoad (go);
                }
                return _instance;
            }
        }
         
     
        [DllImport("__Internal")]
        private static extern void _goComment();
        public  void GoToComment()
        {
            #if UNITY_IPHONE
               _goComment();
             #endif
        }
         
    }
    

    在需要弹框处调用

     UnityStoreKitMgr.Instance.GoToComment();
    

    相关文章

      网友评论

          本文标题:Unity 实现IOS应用内弹出评分框

          本文链接:https://www.haomeiwen.com/subject/vczjaltx.html