จะไม่ได้รับการอัปเดตในอนาคตหรือการแก้ไขข้อบกพร่องในอนาคต หากคุณใช้งานโปรดย้ายไปยังทางออกอื่น
Irate เป็นห้องสมุดที่ช่วยคุณโปรโมตแอพ iPhone และ Mac App Store ของคุณโดยแจ้งให้ผู้ใช้ให้คะแนนแอพหลังจากใช้งานเป็นเวลาสองสามวัน วิธีการนี้เป็นหนึ่งในวิธีที่ดีที่สุดในการรับบทวิจารณ์แอพที่เป็นบวกโดยกำหนดเป้าหมายเฉพาะผู้ใช้ทั่วไป (ซึ่งน่าจะชอบแอพหรือพวกเขาจะไม่ใช้มันต่อไป!)
หมายเหตุ: 'รองรับ' หมายความว่าห้องสมุดได้รับการทดสอบกับเวอร์ชันนี้ 'เข้ากันได้' หมายความว่าไลบรารีควรทำงานกับเวอร์ชันระบบปฏิบัติการนี้ (เช่นไม่พึ่งพาคุณสมบัติ SDK ที่ไม่สามารถใช้งานได้) แต่ไม่ได้ทดสอบความเข้ากันได้อีกต่อไปและอาจต้องใช้การปรับแต่งหรือแก้ไขข้อผิดพลาดเพื่อเรียกใช้อย่างถูกต้อง
ตั้งแต่เวอร์ชัน 1.7, ความโกรธต้องใช้อาร์ค หากคุณต้องการใช้ความโกรธแค้นในโครงการที่ไม่ใช่ ARC เพียงเพิ่มค่าสถานะคอมไพเลอร์ -FOBJC-ARC ในคลาส Irate.m ในการทำเช่นนี้ให้ไปที่แท็บ Build Phases ในการตั้งค่าเป้าหมายของคุณเปิดกลุ่มแหล่งข้อมูลคอมไพล์, ดับเบิลคลิก double.m ในรายการและพิมพ์ -fobjc-arc ลงใน popover
หากคุณต้องการแปลงโครงการทั้งหมดของคุณเป็นส่วนโค้งแสดงความคิดเห็นบรรทัด #error ใน iRate.m จากนั้นเรียกใช้แก้ไข> refactor> แปลงเป็น Objective-C ARC ... เครื่องมือใน XCode และตรวจสอบให้แน่ใจว่าไฟล์ทั้งหมดที่คุณต้องการ ใช้อาร์คสำหรับ (รวมถึง Irate.m)
IRATE ใช้เกลียวภายในเพื่อหลีกเลี่ยงการปิดกั้น UI แต่ไม่มีอินเทอร์เฟซภายนอกที่โกรธแค้นใด ๆ ที่ปลอดภัยและคุณไม่ควรเรียกวิธีการใด ๆ หรือตั้งค่าคุณสมบัติใด ๆ บนความโกรธเคืองยกเว้นจากเธรดหลัก
ในการติดตั้งความโกรธลงในแอพของคุณให้ลากไฟล์ Irate.h, .m และ. bundle ลงในโครงการของคุณ คุณสามารถละเว้น. bundle หากคุณไม่สนใจข้อความที่แปลเป็นภาษาท้องถิ่น
โดยทั่วไปแล้วความโกรธแค้นไม่จำเป็นต้องมีการกำหนดค่าเลยและจะทำงานโดยอัตโนมัติโดยใช้ ID Bundle ของแอปพลิเคชันเพื่อดู ID แอพบนแอพสโตร์
หมายเหตุ: หากคุณมีแอพที่มีรหัสมัดที่ตรงกันทั้งในร้านค้าแอพ Mac และ iOS (แม้ว่าพวกเขาจะใช้การพิมพ์ตัวพิมพ์ใหญ่ที่แตกต่างกัน) กลไกการค้นหาจะไม่ทำงานดังนั้นคุณจะต้องตั้งค่าคุณสมบัติ AppStoreId ด้วยตนเองซึ่งเป็น ID ตัวเลขที่สามารถพบได้ใน iTunes Connect หลังจากที่คุณตั้งค่าแอป นอกจากนี้หากคุณกำลังสร้างแอป Sandboxed Mac และแอปของคุณไม่ได้ขออนุญาตการเข้าถึงเครือข่ายคุณจะต้องตั้งค่า AppStoreID เนื่องจากไม่สามารถเรียกคืนได้จากบริการ iTunes
หากคุณต้องการปรับแต่งความโกรธแค้นเวลาที่ดีที่สุดในการทำเช่นนี้คือใน AppDelegate's -[application:didFinishLaunchingWithOptions:]
วิธีการ การใช้การกำหนดค่าใด ๆ ในภายหลังอาจไม่ทำงานเนื่องจากอาจมีการแสดงพรอมต์แล้วตามจุดนั้น:
#import "iRate.h"
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
//configure iRate
[iRate sharedInstance].daysUntilPrompt = 5;
[iRate sharedInstance].usesUntilPrompt = 15;
return YES;
}
ในการกำหนดค่าความโกรธแค้นมีคุณสมบัติจำนวนมากของคลาสที่โกรธแค้นที่สามารถเปลี่ยนแปลงพฤติกรรมและลักษณะที่ปรากฏของความโกรธแค้น สิ่งเหล่านี้ควรเป็นคำอธิบายตนเองส่วนใหญ่ แต่มีการบันทึกไว้ด้านล่าง:
@property (nonatomic, assign) NSUInteger appStoreID;
สิ่งนี้ควรตรงกับรหัสแอพ iTunes ของแอปพลิเคชันซึ่งคุณสามารถรับได้จาก iTunes Connect หลังจากตั้งค่าแอปของคุณ ค่านี้ไม่จำเป็นโดยปกติและโดยทั่วไปจะต้องใช้เฉพาะเมื่อคุณมีความขัดแย้งดังกล่าวระหว่าง ID Bundle ID สำหรับแอพ Mac และ iOS ของคุณหรือในกรณีของแอพ Sandboxed Mac หากแอปของคุณไม่มีสิทธิ์เครือข่ายเพราะจะไม่เป็น สามารถดึง AppStoreId โดยใช้บริการ iTunes โดยอัตโนมัติ
@property (nonatomic, assign) NSUInteger appStoreGenreID;
นี่คือประเภทของแอพที่ใช้เพื่อกำหนดข้อความเริ่มต้นสำหรับกล่องโต้ตอบการจัดอันดับ สิ่งนี้ถูกตั้งค่าโดยอัตโนมัติโดยเรียกบริการ iTunes ดังนั้นคุณไม่จำเป็นต้องตั้งค่าด้วยตนเองเพื่อจุดประสงค์ส่วนใหญ่ หากคุณต้องการแทนที่ค่านี้ให้ตั้งค่าเป็นค่าคงที่ iRateAppStoreGameGenreID
จะทำให้ความโกรธแค้นใช้กล่องโต้ตอบ "เกม" เวอร์ชันและการตั้งค่าเป็นค่าอื่น ๆ จะใช้กล่องโต้ตอบ "แอป"
@property (nonatomic, copy) NSString *appStoreCountry;
นี่คือรหัสประเทศสองตัวอักษรที่ใช้เพื่อระบุว่าร้าน iTunes ที่จะตรวจสอบ มันถูกตั้งค่าโดยอัตโนมัติจากการตั้งค่าตำแหน่งอุปกรณ์ดังนั้นไม่ควรเปลี่ยนในกรณีส่วนใหญ่ คุณสามารถแทนที่สิ่งนี้เพื่อชี้ไปที่ร้านค้าของสหรัฐอเมริกาหรือร้านค้าอื่น ๆ หากต้องการซึ่งอาจเป็นความคิดที่ดีหากแอปของคุณมีเฉพาะในบางประเทศ
@property (nonatomic, copy) NSString *applicationName;
นี่คือชื่อของแอพที่แสดงในการแจ้งเตือนที่ไม่ดี มันถูกตั้งค่าโดยอัตโนมัติจาก info.plist ของแอปพลิเคชัน แต่คุณอาจต้องการแทนที่ด้วยเวอร์ชันที่สั้นกว่าหรือนานกว่านั้น
@property (nonatomic, copy) NSString *applicationBundleID;
นี่คือ Application Bundle ID ที่ใช้เพื่อดึง appStoreID
และ appStoreGenreID
จาก iTunes สิ่งนี้ถูกตั้งค่าโดยอัตโนมัติจาก info.plist ของแอปดังนั้นคุณไม่ควรเปลี่ยนมันยกเว้นเพื่อการทดสอบ
@property (nonatomic, assign) float daysUntilPrompt;
นี่คือจำนวนวันที่ผู้ใช้ต้องติดตั้งแอพก่อนที่จะได้รับแจ้งให้ให้คะแนน เวลาถูกวัดตั้งแต่ครั้งแรกที่แอปเปิดตัว นี่คือค่าจุดลอยตัวดังนั้นจึงสามารถใช้เพื่อระบุจำนวนวัน (เช่น 0.5) ค่าเริ่มต้นคือ 10 วัน
@property (nonatomic, assign) NSUInteger usesUntilPrompt;
นี่คือจำนวนครั้งที่ผู้ใช้จะต้องเปิดแอปก่อนที่จะได้รับแจ้งให้ให้คะแนน สิ่งนี้จะหลีกเลี่ยงสถานการณ์ที่ผู้ใช้รันแอปหนึ่งครั้งไม่ได้ดูเป็นเวลาหลายสัปดาห์แล้วเปิดตัวอีกครั้งเท่านั้นที่จะได้รับแจ้งให้ให้คะแนนทันที จำนวนการใช้งานขั้นต่ำทำให้มั่นใจได้ว่ามีผู้ใช้บ่อย ๆ เท่านั้นที่ได้รับแจ้ง พรอมต์จะปรากฏขึ้นหลังจากจำนวนวันที่กำหนดและถึงการใช้งานแล้ว ค่าเริ่มต้นนี้ถึง 10 ใช้
@property (nonatomic, assign) NSUInteger eventsUntilPrompt;
สำหรับแอพบางตัวการเปิดตัวไม่ใช่ตัวชี้วัดที่ดีสำหรับการใช้งาน ตัวอย่างเช่นแอปอาจเป็น daemon ที่ทำงานอย่างต่อเนื่องหรือเกมที่ผู้ใช้ไม่สามารถเขียนรีวิวได้อย่างมีข้อมูลจนกว่าพวกเขาจะถึงระดับใดระดับหนึ่ง ในกรณีนี้คุณสามารถบันทึกเหตุการณ์ที่สำคัญด้วยตนเองและให้พรอมต์ปรากฏขึ้นหลังจากจำนวนเหตุการณ์เหล่านี้ที่กำหนดไว้ล่วงหน้า เช่นเดียวกับการตั้งค่า USTUNTILPROMPT พรอมต์จะปรากฏขึ้นหลังจากจำนวนวันและเหตุการณ์ที่ระบุอย่างไรก็ตามเมื่อถึงเกณฑ์วันที่ถึงพรอมต์จะปรากฏขึ้นหากถึงเกณฑ์เหตุการณ์หรือการใช้เกณฑ์การใช้งาน ค่าเริ่มต้นนี้เป็น 10 เหตุการณ์
@property (nonatomic, assign) float usesPerWeekForPrompt;
หากคุณมีความกังวลน้อยกว่าจำนวนครั้งที่แอพใช้งาน แต่ต้องการใช้ ความถี่ ของเวลาที่แอปใช้คุณสามารถใช้คุณสมบัติ usesPerWeekForPrompt
เพื่อตั้งค่าเกณฑ์ขั้นต่ำสำหรับจำนวนครั้งที่ผู้ใช้ต้องเปิดตัว แอพต่อสัปดาห์ (โดยเฉลี่ย) เพื่อแสดงพรอมต์ โปรดทราบว่านี่เป็นค่าเฉลี่ยนับตั้งแต่มีการติดตั้งแอปดังนั้นหากผู้ใช้ไปเป็นเวลานานโดยไม่ต้องใช้แอพมันอาจทำให้ค่าเฉลี่ยหลุดออกไป ค่าเริ่มต้นเป็นศูนย์
@property (nonatomic, assign) float remindPeriod;
นานแค่ไหนที่แอพควรรอก่อนที่จะเตือนผู้ใช้ให้ให้คะแนนหลังจากเลือกตัวเลือก "เตือนฉันในภายหลัง" (วัดเป็นวัน) ค่าศูนย์หมายความว่าแอพจะเตือนผู้ใช้การเปิดตัวครั้งต่อไป โปรดทราบว่าค่านี้แทนที่เกณฑ์อื่น ๆ ดังนั้นแอปจะไม่แจ้งให้คะแนนในช่วงระยะเวลาการแจ้งเตือนแม้ว่าเวอร์ชันใหม่จะถูกปล่อยออกมาในระหว่างนี้ ค่าเริ่มต้นนี้เป็น 1 วัน
@property (nonatomic, copy) NSString *messageTitle;
ชื่อที่แสดงสำหรับพรอมต์การจัดอันดับ หากคุณไม่ต้องการแสดงชื่อให้ตั้งค่าเป็น @""
;
@property (nonatomic, copy) NSString *message;
ข้อความพรอมต์การจัดอันดับ สิ่งนี้ควรสุภาพและสุภาพ แต่ไม่พูดมากเกินไป หากคุณไม่ต้องการแสดงข้อความให้ตั้งค่าเป็น @""
;
@property (nonatomic, copy) NSString *updateMessage;
นี่เป็นข้อความที่ใช้สำหรับผู้ใช้ที่เคยให้คะแนนแอปก่อนหน้านี้กระตุ้นให้พวกเขาได้รับอัตราใหม่ สิ่งนี้ช่วยให้คุณสามารถปรับแต่งข้อความสำหรับผู้ใช้เหล่านี้ หากคุณไม่ได้ระบุข้อความที่กำหนดเองสำหรับกรณีนี้ข้อความมาตรฐานจะถูกใช้
@property (nonatomic, copy) NSString *cancelButtonLabel;
ป้ายกำกับปุ่มสำหรับปุ่มเพื่อยกเลิกพรอมต์การจัดอันดับโดยไม่ต้องให้คะแนนแอป
@property (nonatomic, copy) NSString *rateButtonLabel;
ฉลากปุ่มสำหรับปุ่มที่ผู้ใช้กดหากพวกเขาต้องการให้คะแนนแอพ
@property (nonatomic, copy) NSString *remindButtonLabel;
ฉลากปุ่มสำหรับปุ่มที่ผู้ใช้กดหากพวกเขาไม่ต้องการให้คะแนนแอพทันที แต่ต้องการที่จะได้รับการเตือนในอนาคต ตั้งค่านี้เป็น @""
หากคุณไม่ต้องการแสดงปุ่มเตือนฉัน - เช่นถ้าคุณไม่มีที่ว่างบนหน้าจอ
@property (nonatomic, assign) BOOL useAllAvailableLanguages;
โดยค่าเริ่มต้น Irate จะใช้ภาษาที่มีอยู่ทั้งหมดใน Irate.bundle แม้ว่าจะใช้ในแอพที่ไม่สนับสนุนการแปล หากคุณต้องการ จำกัด ความโกรธแค้นเพื่อใช้ชุดภาษาเดียวกับที่แอปพลิเคชันของคุณรองรับอยู่แล้วให้ตั้งค่าคุณสมบัตินี้เป็น NO (ค่าเริ่มต้นเป็นใช่)
@property (nonatomic, assign) BOOL promptForNewVersionIfUserRated;
เนื่องจากการจัดอันดับ iTunes เป็นรุ่นเฉพาะคุณต้องการให้ผู้ใช้ให้คะแนนแอปเวอร์ชันใหม่ของคุณแต่ละรุ่น ผู้ใช้ที่รักแอพของคุณจริงๆอาจยินดีที่จะอัปเดตรีวิวสำหรับรุ่นใหม่ ตั้ง promptForNewVersionIfUserRated
เป็น YES
และ IRATE จะแจ้งให้ผู้ใช้อีกครั้งทุกครั้งที่ติดตั้งการอัปเดตจนกว่าพวกเขาจะปฏิเสธการให้คะแนนแอป หากพวกเขาปฏิเสธพวกเขาจะไม่ถูกถามอีกครั้ง
@property (nonatomic, assign) BOOL onlyPromptIfLatestVersion;
ตั้งค่าสิ่งนี้เป็น NO เพื่อเปิดใช้งานพรอมต์การจัดอันดับที่จะแสดงแม้ว่าผู้ใช้จะไม่เรียกใช้แอพเวอร์ชันล่าสุด ค่าเริ่มต้นนี้เป็นใช่เพราะวิธีที่ผู้ใช้จะไม่ทิ้งรีวิวที่ไม่ดีเนื่องจากข้อบกพร่องที่คุณได้แก้ไขแล้ว ฯลฯ
@property (nonatomic, assign) BOOL onlyPromptIfMainWindowIsAvailable;
การตั้งค่านี้ใช้ได้กับ Mac OS เท่านั้น โดยค่าเริ่มต้นบน Mac OS การแจ้งเตือน Irate จะแสดงเป็นแผ่นบนหน้าต่างหลัก แอปพลิเคชันบางตัวไม่มีหน้าต่างหลักดังนั้นวิธีนี้จึงไม่ทำงาน สำหรับแอพพลิเคชั่นดังกล่าวตั้งค่าคุณสมบัตินี้เป็น NO เพื่อให้การแจ้งเตือนที่ไม่ดีแสดงเป็นหน้าต่างโมดอลปกติ
@property (nonatomic, assign) BOOL promptAtLaunch;
ตั้งค่านี้เป็น NO เพื่อปิดการใช้งานพรอมต์การจัดอันดับโดยอัตโนมัติเมื่อแอปพลิเคชันเปิดตัวหรือส่งคืนจากพื้นหลัง เกณฑ์การจัดอันดับจะยังคงถูกติดตาม แต่พรอมต์จะไม่แสดงโดยอัตโนมัติในขณะที่การตั้งค่านี้มีผล คุณสามารถใช้ตัวเลือกนี้หากคุณต้องการควบคุมการแสดงผลของพรอมต์การจัดอันดับด้วยตนเอง
@property (nonatomic, assign) BOOL verboseLogging;
ตัวเลือกนี้จะทำให้โกรธในการส่งบันทึกโดยละเอียดไปยังคอนโซลเกี่ยวกับกระบวนการตัดสินใจที่รวดเร็ว หากแอปของคุณไม่ได้รับการแจ้งเตือนอย่างถูกต้องสำหรับการให้คะแนนเมื่อคุณคาดหวังสิ่งนี้จะช่วยให้คุณทราบได้ว่าทำไม การบันทึก Verbose เปิดใช้งานโดยค่าเริ่มต้นในการดีบักบิ๊กและปิดใช้งานในการสร้างและการปรับใช้
@property (nonatomic, assign) BOOL previewMode;
หากตั้งค่าเป็น YES IRATE จะแสดงพรอมต์การให้คะแนนเมื่อเปิดตัวไม่ว่าแอพจะใช้งานนานเท่าใดหรือว่าเป็นเวอร์ชันล่าสุด (เว้นแต่คุณจะปิดใช้งานตัวเลือก promptAtLaunch
อย่างชัดเจน) ใช้สิ่งนี้เพื่อพิสูจน์อักษรข้อความของคุณและตรวจสอบการกำหนดค่าของคุณถูกต้องในระหว่างการทดสอบ แต่ปิดการใช้งานสำหรับการเปิดตัวสุดท้าย (ค่าเริ่มต้นเป็น NO)
@property (nonatomic, assign) BOOL useUIAlertControllerIfAvailable;
โดยค่าเริ่มต้น IRATE จะใช้ UIALERTVIEW บน iOS เพื่อแสดงพรอมต์การจัดอันดับ UialertView เลิกใช้ใน iOS8 และแทนที่ด้วย UiAlertController น่าเสียดายที่ไม่เหมือนกับ UialerTView ที่นำเสนอการแจ้งเตือนด้วย UialertController รบกวนความสามารถของแอพในการแสดงคอนโทรลเลอร์อื่น . ด้วยเหตุผลนี้การใช้ UialertController จะถูกปิดใช้งานโดยค่าเริ่มต้น คุณควรตั้งค่าคุณสมบัตินี้เป็นใช่หากคุณมั่นใจว่าจะไม่ปะทะกับตรรกะแอปของคุณ (เช่นถ้าคุณปิดการให้คะแนนการให้คะแนนอัตโนมัติหรือหากแอปของคุณไม่ใช้คอนโทรลเลอร์มุมมองแบบโมดอล)
@property (nonatomic, assign) BOOL useSKStoreReviewControllerIfAvailable;
โดยค่าเริ่มต้น Irate จะใช้ SkstorerEviewController เพื่อขอความเห็นจาก iOS 10.3 ขึ้นไป หากต้องการปิดการใช้งานสิ่งนี้ให้ตั้งค่า useSKStoreReviewControllerIfAvailable
TO เป็น NO
หากพฤติกรรมการโกรธแค้นเริ่มต้นไม่เป็นไปตามข้อกำหนดของคุณคุณสามารถใช้งานของคุณเองได้โดยใช้คุณสมบัติขั้นสูงวิธีการและมอบหมาย คุณสมบัติด้านล่างช่วยให้คุณเข้าถึงสถานะภายในและแทนที่:
@property (nonatomic, strong) NSURL *ratingsURL;
URL ที่แอปจะนำผู้ใช้ไปให้เพื่อให้พวกเขาสามารถเขียนคะแนนสำหรับแอป สิ่งนี้ถูกตั้งค่าเป็นค่าที่ถูกต้องสำหรับแพลตฟอร์มที่กำหนดโดยอัตโนมัติ ใน iOS 6 และต่ำกว่านี้จะนำผู้ใช้ไปยังหน้าการให้คะแนนโดยตรง แต่ใน iOS 7 และ Mac OS จะนำผู้ใช้ไปยังหน้าแอพหลัก (หากมีวิธีเชื่อมโยงไปยังหน้าการให้คะแนนโดยตรงบนแพลตฟอร์มเหล่านั้นฉันยัง เพื่อค้นหา) หากคุณใช้พรอมต์การให้คะแนนของคุณเองคุณควรใช้วิธี openRatingsPageInAppStore
แทนโดยเฉพาะอย่างยิ่งบน Mac OS เนื่องจากกระบวนการสำหรับการเปิด App Store Mac นั้นซับซ้อนกว่าการเปิด URL
@property (nonatomic, strong) NSDate *firstUsed;
วันแรกที่ผู้ใช้เปิดตัวแอพเวอร์ชันปัจจุบัน สิ่งนี้ใช้ในการคำนวณว่าเป็นไปตามเกณฑ์ของ DayStIlPrompt หรือไม่
@property (nonatomic, strong) NSDate *lastReminded;
วันที่ที่ผู้ใช้ขอล่าสุดได้รับการเตือนให้ให้คะแนนแอพในภายหลัง
@property (nonatomic, assign) NSUInteger usesCount;
จำนวนครั้งที่แอพเวอร์ชันปัจจุบันถูกใช้ (เปิดตัว)
@property (nonatomic, assign) NSUInteger eventCount;
จำนวนเหตุการณ์แอปพลิเคชันที่สำคัญที่ได้รับการบันทึกตั้งแต่รุ่นปัจจุบันถูกติดตั้ง สิ่งนี้เพิ่มขึ้นโดยวิธี LogeVent แต่ยังสามารถจัดการได้โดยตรง ตรวจสอบ การสาธิตกิจกรรม เพื่อดูว่าระบบปฏิบัติการนี้ใช้อย่างไร
@property (nonatomic, readonly) float usesPerWeek;
จำนวนครั้งเฉลี่ยต่อสัปดาห์ที่ใช้เวอร์ชันปัจจุบันของแอพ (เปิดตัว)
@property (nonatomic, assign) BOOL declinedThisVersion;
ธงนี้บ่งชี้ว่าผู้ใช้ปฏิเสธที่จะให้คะแนนเวอร์ชันปัจจุบัน (ใช่) หรือไม่ (ไม่) ปัจจุบันยังไม่ได้ใช้งานโดยตรรกะการกระตุ้นด้วยความโกรธ แต่อาจมีประโยชน์สำหรับการใช้ตรรกะของคุณเอง
@property (nonatomic, assign) BOOL declinedAnyVersion;
การตั้งค่าสถานะนี้บ่งชี้ว่าผู้ใช้ปฏิเสธที่จะให้คะแนนแอพเวอร์ชันก่อนหน้า (ใช่) หรือไม่ (ไม่) Irate จะไม่แจ้งให้ผู้ใช้โดยอัตโนมัติหากตั้งค่าเป็นใช่
@property (nonatomic, assign) BOOL ratedThisVersion;
แฟล็กนี้ระบุว่าผู้ใช้ได้ให้คะแนนเวอร์ชันปัจจุบัน (ใช่) หรือไม่ (ไม่)
@property (nonatomic, readonly) BOOL ratedAnyVersion;
ธงนี้ (อ่านอย่างง่าย) ระบุว่าผู้ใช้ได้ให้คะแนนแอปเวอร์ชันใด ๆ (ใช่) หรือไม่ (ไม่)
@property (nonatomic, assign) id<iRateDelegate> delegate;
วัตถุที่คุณจัดหาให้ใช้ในการใช้โปรโตคอล iRateDelegate
ซึ่งบันทึกไว้ด้านล่าง ใช้สิ่งนี้เพื่อตรวจจับและ/หรือแทนที่พฤติกรรมเริ่มต้นของ Irate ค่าเริ่มต้นนี้ไปยังผู้แทนแอปดังนั้นหากคุณใช้ตัวแทนแอปของคุณเป็นตัวแทนผู้โกรธแค้นของคุณคุณไม่จำเป็นต้องตั้งค่าคุณสมบัตินี้
นอกจากการกำหนดค่าแล้ว IRATE ยังมีวิธีการดังต่อไปนี้:
- (BOOL)shouldPromptForRating;
ผลตอบแทนใช่หากเป็นไปตามเกณฑ์การแจ้งและไม่หากพวกเขาไม่มี คุณสามารถใช้สิ่งนี้เพื่อตัดสินใจว่าจะแสดงพรอมต์การให้คะแนนเมื่อคุณปิดการใช้งานการแสดงผลอัตโนมัติที่แอปเปิดใช้งาน การเรียกใช้วิธีนี้จะไม่เรียกวิธีผู้แทน iRateShouldPromptForRating
- (void)promptForRating;
วิธีนี้จะทำให้เกิดพรอมต์การจัดอันดับทันทีโดยไม่ตรวจสอบว่า App Store นั้นพร้อมใช้งานและไม่ต้องโทรหาวิธีผู้แทน irateshouldpromptforrating โปรดทราบว่าวิธีนี้ขึ้นอยู่กับคุณสมบัติของ appStoreID
และ applicationGenre
ซึ่งจะดึงมาหลังจากการสำรวจเซิร์ฟเวอร์ iTunes เท่านั้นดังนั้นหากคุณตั้งใจ promptIfNetworkAvailable
เรียกวิธีนี้โดยตรงคุณจะต้องตั้งค่าคุณสมบัติเหล่านี้ด้วยตัวเองล่วงหน้า
- (void)promptIfNetworkAvailable;
วิธีนี้จะตรวจสอบว่า App Store พร้อมใช้งานหรือไม่และถ้าเป็นมันจะแสดงพรอมต์การจัดอันดับให้กับผู้ใช้ วิธีการที่ได้รับมอบหมาย irateshouldpromptforrating จะถูกเรียกก่อนที่จะแสดงการแจ้งเตือนดังนั้นคุณสามารถสกัดกั้นได้ โปรดทราบว่าหากแอปของคุณเป็น Sandboxed และไม่มีสิทธิ์การเข้าถึงเครือข่ายวิธีนี้จะเพิกเฉยต่อสถานะความพร้อมใช้งานของเครือข่ายอย่างไรก็ตามในกรณีนี้คุณจะต้องตั้งค่า appStoreID
หรือ IRATE ด้วยตนเองไม่สามารถทำงานได้
- (void)promptIfAllCriteriaMet;
วิธีนี้จะตรวจสอบว่าเป็นไปตามเกณฑ์การแจ้งเตือนทั้งหมดหรือไม่และหากมีแอพสโตร์หรือไม่และหากเป็นเช่นนั้นจะแสดงพรอมต์การจัดอันดับให้กับผู้ใช้ วิธีการที่ได้รับมอบหมาย irateshouldpromptforrating จะถูกเรียกก่อนที่จะแสดงการแจ้งเตือนดังนั้นคุณสามารถสกัดกั้นได้
- (void)openRatingsPageInAppStore;
วิธีนี้ข้ามการแจ้งเตือนของผู้ใช้และเปิดหน้าการจัดอันดับแอปพลิเคชันใน Mac หรือ iPhone App Store ขึ้นอยู่กับว่าแพลตฟอร์มใดกำลังทำงานอยู่ วิธีนี้ไม่ได้ทำการตรวจสอบใด ๆ เพื่อตรวจสอบว่าเครื่องมีการเข้าถึงเครือข่ายหรือมีแอพสโตร์ นอกจากนี้ยังไม่เรียกวิธีการที่ผู้แทน -iRateShouldOpenAppStore
คุณควรใช้วิธีนี้เพื่อเปิดหน้าการให้คะแนนแทนที่จะเป็นคุณสมบัติการให้คะแนนเนื่องจากกระบวนการในการเปิดตัว App Store นั้นซับซ้อนกว่าการเปิด URL ในหลาย ๆ กรณี โปรดทราบว่าวิธีนี้ขึ้นอยู่กับ appStoreID
ซึ่งจะถูกเรียกคืนหลังจากการสำรวจเซิร์ฟเวอร์ iTunes เท่านั้น หากคุณเรียกวิธีการนี้โดยไม่ต้องทำการตรวจสอบการอัปเดตก่อนคุณจะต้องตั้งค่าคุณสมบัติ appStoreID
ด้วยตัวเองล่วงหน้าหรือเสี่ยงที่วิธีการอาจใช้เวลาสักครู่ในการโทรเครือข่ายหรือล้มเหลวทั้งหมด ในความสำเร็จวิธีนี้จะเรียกวิธีการมอบหมาย -iRateDidOpenAppStore
ในความล้มเหลวมันจะเรียกว่า -iRateCouldNotConnectToAppStore:
วิธีการมอบหมาย
- (void)logEvent:(BOOL)deferPrompt;
วิธีนี้สามารถเรียกได้จากทุกที่ในแอพของคุณ (หลังจากกำหนดค่าความโกรธแค้น) และเพิ่มจำนวนเหตุการณ์ที่สำคัญที่โกรธแค้น เมื่อถึงจำนวนเหตุการณ์ที่กำหนดไว้ล่วงหน้าจะมีการแสดงการจัดอันดับ พารามิเตอร์ DeferPrompt เสริมใช้เพื่อตรวจสอบว่าพรอมต์จะแสดงทันที (ไม่) หรือหากแอปจะรอจนกว่าจะเปิดตัวครั้งต่อไป (ใช่)
- (void)remindLater;
วิธีนี้จะรีเซ็ตระยะเวลาการแจ้งเตือน
โปรโตคอล Iratedelegate ให้วิธีการต่อไปนี้ที่สามารถใช้เหตุการณ์สกัดกั้นเหตุการณ์ที่น่ารังเกียจและแทนที่พฤติกรรมเริ่มต้น วิธีการทั้งหมดเป็นทางเลือก
- (void)iRateCouldNotConnectToAppStore:(NSError *)error;
วิธีนี้เรียกว่าถ้าความโกรธแค้นไม่สามารถเชื่อมต่อกับ App Store ได้โดยปกติแล้วเนื่องจากการเชื่อมต่อเครือข่ายลดลง สิ่งนี้อาจยิงได้หากแอปของคุณไม่สามารถเข้าถึงเครือข่ายได้เนื่องจากการอนุญาตจาก Sandbox ซึ่งในกรณีนี้คุณจะต้องตั้งค่า AppStoreID ด้วยตนเองเพื่อให้ความโกรธแค้นยังคงทำงานได้
- (void)iRateDidDetectAppUpdate;
วิธีนี้เรียกว่าถ้าความโกรธตรวจพบว่าแอปพลิเคชันได้รับการอัปเดตตั้งแต่ครั้งสุดท้ายที่เปิดตัว
- (BOOL)iRateShouldPromptForRating;
วิธีนี้เรียกทันทีก่อนที่พรอมต์การจัดอันดับจะปรากฏขึ้นต่อผู้ใช้ คุณสามารถใช้วิธีนี้เพื่อใช้ตรรกะพรอมต์แบบกำหนดเองนอกเหนือจากกฎมาตรฐาน นอกจากนี้คุณยังสามารถใช้วิธีนี้เพื่อบล็อกการแจ้งเตือนพรอมต์มาตรฐานและแสดงพรอมต์การจัดอันดับในวิธีที่แตกต่างกันหรือข้ามไปโดยสิ้นเชิง
- (void)iRateDidPromptForRating;
วิธีนี้เรียกทันทีก่อนที่จะแสดงพรอมต์การจัดอันดับ สิ่งนี้มีประโยชน์หากคุณใช้ Analytics เพื่อติดตามเปอร์เซ็นต์ของผู้ใช้ที่เห็นพรอมต์แล้วไปที่ App Store สิ่งนี้สามารถช่วยให้คุณปรับสถานการณ์รอบ ๆ เมื่อใด/วิธีที่คุณแสดงพรอมต์
- (void)iRateUserDidAttemptToRateApp;
สิ่งนี้เรียกว่าเมื่อผู้ใช้กดปุ่มอัตราในพรอมต์การจัดอันดับ สิ่งนี้มีประโยชน์หากคุณต้องการบันทึกการโต้ตอบของผู้ใช้กับ IRATE วิธีนี้จะเรียกเฉพาะในกรณีที่คุณใช้พรอมต์มุมมองการแจ้งเตือนมาตรฐานและจะไม่ถูกเรียกโดยอัตโนมัติหากคุณให้การจัดอันดับการจัดอันดับที่กำหนดเองหรือเรียกใช้วิธี openRatingsPageInAppStore
โดยตรง
- (void)iRateUserDidDeclineToRateApp;
สิ่งนี้เรียกว่าเมื่อผู้ใช้ปฏิเสธที่จะให้คะแนนแอป สิ่งนี้มีประโยชน์หากคุณต้องการบันทึกการโต้ตอบของผู้ใช้กับ IRATE วิธีนี้จะเรียกเฉพาะในกรณีที่คุณใช้พรอมต์มุมมองการแจ้งเตือนมาตรฐานและจะไม่ถูกเรียกโดยอัตโนมัติหากคุณให้การจัดอันดับการจัดอันดับที่กำหนดเอง
- (void)iRateUserDidRequestReminderToRateApp;
สิ่งนี้เรียกว่าเมื่อผู้ใช้ขอให้เตือนให้คะแนนแอป สิ่งนี้มีประโยชน์หากคุณต้องการบันทึกการโต้ตอบของผู้ใช้กับ IRATE วิธีนี้จะเรียกเฉพาะในกรณีที่คุณใช้พรอมต์มุมมองการแจ้งเตือนมาตรฐานและจะไม่ถูกเรียกโดยอัตโนมัติหากคุณให้การจัดอันดับการจัดอันดับที่กำหนดเอง
- (BOOL)iRateShouldOpenAppStore;
วิธีนี้เรียกว่าทันทีก่อนที่จะพยายามเปิดแอพสโตร์ ส่งคืนไม่หากคุณต้องการใช้ตรรกะการแสดงหน้าการจัดอันดับของคุณเอง
- (void)iRateDidOpenAppStore;
วิธีนี้เรียกทันทีหลังจากที่ไม่ดีเปิดแอพสโตร์
สตริงเริ่มต้นสำหรับความโกรธแค้นนั้นมีการแปลเป็นภาษาท้องถิ่นหลายภาษา โดยค่าเริ่มต้น Irate จะใช้ localisations ทั้งหมดใน Irate.bundle แม้ในแอพที่ไม่ได้แปลเป็นภาษาท้องถิ่น คีย์สตริงที่โกรธแค้นคือ:
static NSString *const iRateMessageTitleKey = @"iRateMessageTitle";
static NSString *const iRateAppMessageKey = @"iRateAppMessage";
static NSString *const iRateGameMessageKey = @"iRateGameMessage";
static NSString *const iRateUpdateMessageKey = @"iRateUpdateMessage";
static NSString *const iRateCancelButtonKey = @"iRateCancelButton";
static NSString *const iRateRemindButtonKey = @"iRateRemindButton";
static NSString *const iRateRateButtonKey = @"iRateRateButton";
หากคุณต้องการความโกรธแค้นเพื่อใช้เฉพาะ localisations ที่เปิดใช้งานในแอปพลิเคชันของคุณ (เพื่อว่าหากแอปของคุณรองรับภาษาอังกฤษฝรั่งเศสและสเปนเท่านั้นความโกรธแค้นจะได้รับการแปลโดยอัตโนมัติสำหรับภาษาเหล่านั้น แต่ไม่ใช่ภาษาเยอรมัน ไฟล์ภาษา) ตั้งค่าตัวเลือก useAllAvailableLanguages
เป็นหมายเลข
ไม่แนะนำให้คุณปรับเปลี่ยนไฟล์สตริงใน iRate.bundle เนื่องจากจะทำให้การอัปเดตเป็นเวอร์ชันใหม่ของ Irate มีความซับซ้อน ข้อยกเว้นสำหรับเรื่องนี้คือหากคุณต้องการส่งภาษาเพิ่มเติมหรือการปรับปรุงหรือการแก้ไขไปยังท้องถิ่นในโครงการที่โกรธแค้นใน GitHub (ซึ่งได้รับการชื่นชมอย่างมาก)
หากคุณต้องการเพิ่มภาษาเพิ่มเติมสำหรับความโกรธแค้นในแอปของคุณโดยไม่ส่งกลับไปยังโครงการ GitHub คุณสามารถเพิ่มสตริงเหล่านี้โดยตรงไปยังไฟล์ localizable.strings ที่เหมาะสมในโฟลเดอร์โครงการของคุณ หากคุณต้องการแทนที่สตริงที่ไม่ดีเริ่มต้นบางส่วนหรือทั้งหมดตัวเลือกที่ง่ายที่สุดคือการคัดลอกเฉพาะสตริงเหล่านั้นลงในไฟล์ localizable.strings ของคุณเองแล้วแก้ไข Irate จะใช้สตริงโดยอัตโนมัติในชุดแอปพลิเคชันหลักในการตั้งค่ากับกลุ่มในชุดข้อมูลที่ไม่ดีเพื่อให้คุณสามารถแทนที่สตริงใด ๆ ด้วยวิธีนี้
หากคุณไม่ต้องการใช้ localisations เริ่มต้น ใด ๆ คุณสามารถละเว้น Irate.bundle โดยสิ้นเชิง โปรดทราบว่าหากคุณต้องการสนับสนุนชุดย่อยของภาษาที่ไม่สนับสนุนการสนับสนุนไม่จำเป็นต้องลบไฟล์สตริงอื่น ๆ ออกจาก iRate.Bundle - เพียงแค่ตั้ง useAllAvailableLanguages
เป็น NO และ IRATE จะใช้ภาษาที่แอปของคุณรองรับแล้ว
วิธีการเก่าของการเอาชนะสตริงเริ่มต้นของ Irate โดยใช้วิธีการตั้งค่าแต่ละตัว (ดูด้านล่าง) ยังคงได้รับการสนับสนุนอย่างไรก็ตามวิธีการที่แนะนำคือตอนนี้เพื่อเพิ่มสตริงเหล่านั้นลงในไฟล์ localizable.strings ของโครงการของคุณซึ่งจะถูกตรวจพบโดยอัตโนมัติ
+ (void)initialize
{
//overriding the default iRate strings
[iRate sharedInstance].messageTitle = NSLocalizedString(@"Rate MyApp", @"iRate message title");
[iRate sharedInstance].message = NSLocalizedString(@"If you like MyApp, please take the time, etc", @"iRate message");
[iRate sharedInstance].cancelButtonLabel = NSLocalizedString(@"No, Thanks", @"iRate decline button");
[iRate sharedInstance].remindButtonLabel = NSLocalizedString(@"Remind Me Later", @"iRate remind button");
[iRate sharedInstance].rateButtonLabel = NSLocalizedString(@"Rate It Now", @"iRate accept button");
}
เมื่อคุณสร้างและเรียกใช้โครงการ Mac หรือ iPhone พื้นฐานเป็นครั้งแรกมันจะแสดงการแจ้งเตือนเพื่อขอให้คุณให้คะแนนแอป นี่เป็นเพราะตัวเลือก PreviewMode ถูกตั้งค่า
ปิดการใช้งานตัวเลือก PreviewMode และเล่นกับการตั้งค่าอื่น ๆ เพื่อดูว่าแอปมีพฤติกรรมอย่างไรในทางปฏิบัติ
ตัวอย่างขั้นสูงแสดงให้เห็นว่าคุณอาจใช้อินเทอร์เฟซที่ไม่ดีโดยสมบูรณ์โดยใช้วิธีการ IratedElegate การแจ้งเตือนอัตโนมัติถูกปิดใช้งานและผู้ใช้สามารถเลือกให้คะแนนแอพได้โดยกดปุ่ม "อัตราแอพนี้"
เมื่อกดแอปก่อนจะตรวจสอบว่า App Store มีให้บริการ (อาจไม่เป็นไปได้ว่าคอมพิวเตอร์ไม่มีการเชื่อมต่ออินเทอร์เน็ตหรือ Apple.com จะหยุดทำงาน) จากนั้นเปิดตัว Mac App Store
ตัวอย่างสำหรับ Mac OS แต่สามารถใช้หลักการเดียวกันกับ iOS ได้
เวอร์ชัน 1.12.2
เวอร์ชัน 1.12.1
เวอร์ชัน 1.12
เวอร์ชัน 1.11.7
เวอร์ชัน 1.11.6
เวอร์ชัน 1.11.5
เวอร์ชัน 1.11.4
canOpenURL:
เวอร์ชัน 1.11.3
เวอร์ชัน 1.11.2
เวอร์ชัน 1.11.1
เวอร์ชัน 1.11
promptIfCriteriaMet
วิธีการสะดวกNSNotificationCenter
เป็นทางเลือกแทนการมอบหมายUIAlertController
แทน UIAlertView
หากมีอยู่เวอร์ชัน 1.10.3
เวอร์ชัน 1.10.2
เวอร์ชัน 1.10.1
เวอร์ชัน 1.10
daysUntilPrompt
promptForNewVersionIfUserRated
updateMessage
สำหรับใช้กับตัวเลือก promptForNewVersionIfUserRated
เวอร์ชัน 1.9.3
เวอร์ชัน 1.9.2
เวอร์ชัน 1.9.1
เวอร์ชัน 1.9
promptAgainEachVersion
เวอร์ชัน 1.8.3
เวอร์ชัน 1.8.2
เวอร์ชัน 1.8.1
เวอร์ชัน 1.8
เวอร์ชัน 1.7.5
เวอร์ชัน 1.7.4
เวอร์ชัน 1.7.3
เวอร์ชัน 1.7.2
เวอร์ชัน 1.7.1
เวอร์ชัน 1.7
เวอร์ชัน 1.6.2
เวอร์ชัน 1.6.1
เวอร์ชัน 1.6
เวอร์ชัน 1.5.3
เวอร์ชัน 1.5.2
เวอร์ชัน 1.5.1
เวอร์ชัน 1.5
เวอร์ชัน 1.4.9
เวอร์ชัน 1.4.8
เวอร์ชัน 1.4.7
เวอร์ชัน 1.4.6
เวอร์ชัน 1.4.5
เวอร์ชัน 1.4.4
เวอร์ชัน 1.4.3
เวอร์ชัน 1.4.2
เวอร์ชัน 1.4.1
เวอร์ชัน 1.4
เวอร์ชัน 1.3.5
เวอร์ชัน 1.3.4
iRateDidDetectAppUpdate
Methodเวอร์ชัน 1.3.3
เวอร์ชัน 1.3.2
เวอร์ชัน 1.3.1
เวอร์ชัน 1.3
เวอร์ชัน 1.2.3
เวอร์ชัน 1.2.2
เวอร์ชัน 1.2.1
MAC_APP_STORE_REFRESH_DELAY
to 5 seconds to support older machinesเวอร์ชัน 1.2
Version 1.1
Version 1.0