ฉันกำลังพยายามพัฒนาแอปพลิเคชัน iPhone เพื่ออ่านไฟล์ ePub มีกรอบสำหรับพัฒนาสิ่งนี้หรือไม่? ฉันไม่รู้ว่าจะอ่านรูปแบบไฟล์นี้อย่างไร ฉันพยายามแยกวิเคราะห์ไฟล์ตัวอย่างที่มีนามสกุล. epub โดยใช้ NSXML Parser แต่ก็ล้มเหลว
ฉันกำลังพยายามพัฒนาแอปพลิเคชัน iPhone เพื่ออ่านไฟล์ ePub มีกรอบสำหรับพัฒนาสิ่งนี้หรือไม่? ฉันไม่รู้ว่าจะอ่านรูปแบบไฟล์นี้อย่างไร ฉันพยายามแยกวิเคราะห์ไฟล์ตัวอย่างที่มีนามสกุล. epub โดยใช้ NSXML Parser แต่ก็ล้มเหลว
คำตอบ:
รูปแบบ EPUB รวบรวมข้อกำหนด / รูปแบบต่างๆไว้ด้วยกัน:
รายละเอียดดูน่ากลัวเล็กน้อย แต่จริงๆแล้วเมื่อคุณมีพื้นฐาน (การคลายซิปแยกวิเคราะห์ XML) แล้วก็ไม่ยากหรือซับซ้อนเป็นพิเศษ
คุณจะต้องค้นหาวิธีดาวน์โหลด EPUB คลายซิปที่ใดที่หนึ่งเพื่อแยกวิเคราะห์ไฟล์ Manifest จากนั้นจึงจะแสดงเนื้อหาที่เกี่ยวข้อง
คำแนะนำบางประการหากคุณเพิ่งเริ่มต้น:
หากต้องการแสดงเนื้อหาเพียงใช้ a UIWebView
สำหรับตอนนี้
นี่คือขั้นตอนระดับสูงสำหรับรหัสของคุณ:
1) สร้างมุมมองด้วยไฟล์ UIWebView
2) ดาวน์โหลดไฟล์ EPUB
3) แตกไฟล์ไปยังไดเร็กทอรีย่อยในโฟลเดอร์เอกสารของแอปโดยใช้ไลบรารี zip ที่ลิงก์ด้านบน
4) แยกวิเคราะห์ไฟล์ XML ที่META-INF/container.xml
(หากไม่มีไฟล์นี้แสดงว่า EPUB ไม่ถูกต้อง) โดยใช้ TBXML ที่ลิงก์ด้านบน
5) ใน XML นี้พบครั้งแรก "rootfile" application/oebps-package+xml
กับสื่อชนิด นี่คือไฟล์ OPF สำหรับหนังสือ
6) แยกวิเคราะห์ไฟล์ OPF (รวมถึง XML)
7) ตอนนี้คุณต้องรู้ว่าบทแรกของหนังสือเล่มนี้คืออะไร
ก) แต่ละองค์ประกอบ<item>
ใน<manifest>
องค์ประกอบมี id และ href จัดเก็บสิ่งเหล่านี้ในNSDictionary
ที่ที่คีย์คือ id และอ็อบเจ็กต์คือ href
b) ดูครั้งแรก<itemref>
ในไฟล์<spine>
. มีแอตทริบิวต์ idref ซึ่งสอดคล้องกับหนึ่งในรหัสใน (a) ค้นหารหัสนั้นในNSDictionary
และคุณจะได้รับ href
c) นี่คือไฟล์ของบทแรกที่แสดงให้ผู้ใช้เห็น คำนวณว่าพา ธ แบบเต็มคืออะไร (คำแนะนำ: ทุกที่ที่คุณคลายซิปไฟล์ zip ไปที่ (3) บวกไดเร็กทอรีฐานของไฟล์ OPF ใน (6))
8) สร้างการNSURL
ใช้งานโดยfileURLWithPath:
ที่พา ธ เป็นเส้นทางแบบเต็มจาก (7c) โหลดคำขอนี้โดยใช้ที่UIWebView
คุณสร้างไว้ใน (1)
คุณจะต้องใช้ปุ่มเดินหน้า / ถอยหลังหรือกวาดนิ้วหรือบางอย่างเพื่อให้ผู้ใช้สามารถย้ายจากบทหนึ่งไปอีกบทหนึ่งได้ ใช้<spine>
เพื่อกำหนดไฟล์ที่จะแสดงต่อไป - <itemrefs>
ใน XML อยู่ในลำดับที่ควรปรากฏต่อผู้อ่าน
เห็นได้ชัดว่า EPUB เป็นรูปแบบ XML "เฉยๆ" ดังนั้นหากคุณมีตัวแยกวิเคราะห์ xml และข้อมูลจำเพาะก็น่าจะโอเค
บวกtuto เล็กน้อย ? มีความสุข!
แก้ไข: คุณสามารถอ่านโค้ดบางส่วนได้ที่นี่ซึ่งมีไว้สำหรับการสร้าง epub ไม่ใช่การอ่าน แต่โค้ดอาจมีประโยชน์
แก้ไขอีกครั้ง: และดูลิงก์ไปยังคำถามที่เกี่ยวข้องในแถบด้านข้างด้านขวามีลิงก์บางส่วนในคำตอบสำหรับโปรแกรมอ่าน ebook ฟรีซึ่งรองรับ ePub
แก้ไข 3: คุณควรเพิ่มความคิดเห็นเมื่อคุณแก้ไขคำถามของคุณเพื่อให้คนที่ตอบคุณสามารถสนทนาต่อได้ (หากคุณไม่แสดงความคิดเห็นเราไม่สังเกตเห็นการแก้ไขของคุณ)
ดังนั้นการแยกวิเคราะห์จึงล้มเหลวเนื่องจากคุณไม่ได้อ่านข้อมูลจำเพาะหรือคำถามที่เกี่ยวข้องในไฟล์ Stack Overflow ... * .epub เป็นโฟลเดอร์ซิปที่มีไฟล์ XML ไม่ใช่ xml ธรรมดา
ฉันอ่านบทช่วยสอนนี้หนึ่งครั้ง (ต้องลงทะเบียนฟรีขออภัย) และได้ให้คำแนะนำที่ดีเกี่ยวกับ ePub สอน deverloperWorks ที่นี่
ฉันขอแนะนำให้คุณดูไลบรารีการประมวลผล XML บางส่วน หากคุณต้องการเพียงแค่ได้รับข้อมูลเฉพาะจากไฟล์ XML คุณสามารถเลือกกลยุทธ์การแยกวิเคราะห์ที่เหมาะสมได้
ฉันกำลังเล่น arround เพื่อสร้าง epub-framework สำหรับแอพ iphone
ในขณะนี้ (ฉันเพิ่งเริ่มต้นจริงๆ) ฉันสามารถสร้างหน้าชื่อเรื่องพร้อมลิงก์ไปยังบทต่างๆ
แนวทางของฉันคือ
ตอนนี้ฉันกำลังดู pageflip ปัญหาเกี่ยวกับ gui และความสามารถในการใช้งานเล็กน้อย (บันทึกหน้าที่กำลังดูอยู่)
ฉันหวังว่าจะช่วยให้คุณมีความคิดในการเริ่มต้น
Jonathan Wight (schwa) ได้พัฒนาโซลูชัน ObjC สำหรับการแยกวิเคราะห์และแสดงเอกสาร ePub บน iPhone เป็นส่วนหนึ่งของที่เก็บโอเพนซอร์ส TouchCode ของเขา