2012-08-19 29 views
16

Tôi đang cố gắng phát triển một ứng dụng Android để duyệt blog do Wordpress hỗ trợ. Tôi đang cố gắng tìm ra cách truy xuất các bài đăng và thông tin khác từ blog để hiển thị trong ứng dụng. Tôi đã xem xét tất cả nhưng tôi cảm thấy hoàn toàn bị mất. Đây có phải là cái gì đó có thể được thực hiện hoàn toàn trong Java/XML không? Nếu vậy, làm thế nào?Cách truy xuất các bài đăng từ Blog WordPress trong Ứng dụng Android?

Cảm ơn bạn!

Trả lời

23

Có, nó có thể được thực hiện.

Một cách là sử dụng api xml-rpc. Blog Wordpress có một api xml-rpc (bạn cần bật trên blog Wordpress trong phần "Cài đặt - Viết"). Bạn cũng sẽ cần phải tạo người dùng trên blog mà bạn cung cấp ít nhất quyền truy cập đọc và bạn bao gồm thông tin xác thực trong ứng dụng của mình. Từ đó, bạn có thể thực hiện các cuộc gọi xml-rpc tới (các) blog Wordpress của mình.

Nếu sử dụng xml-rpc này api là một lựa chọn, hãy nhìn vào lib này Java: http://code.google.com/p/wordpress-java/

Bạn có thể lấy blogposts sử dụng lib này như thế này:

String username = args[0]; 
String password = args[1]; 
String xmlRpcUrl = args[2]; 
Wordpress wp = new Wordpress(username, password, xmlRpcUrl); 
List<Page> recentPosts = wp.getRecentPosts(10); 

Ngoài ra, chính thức Wordpress ứng dụng Android là mã nguồn mở. Hướng dẫn để lấy nó là: http://android.wordpress.org/development/ Bạn có thể sử dụng mã nguồn này làm điểm bắt đầu và điều chỉnh nó theo nhu cầu của bạn.

Lưu ý rằng bạn chỉ có thể sử dụng api xml-rpc khi bạn có người dùng có quyền truy cập đọc. Nếu bạn không có thông tin đăng nhập của người dùng có quyền truy cập đọc, bạn không thể tải các bài đăng bằng cách sử dụng api xml-rpc. Tìm nạp nguồn cấp dữ liệu rss và phân tích cú pháp nguồn cấp dữ liệu rss với một số lib java có thể là đặt cược tốt nhất của bạn sau đó (kiểm tra http://www.vogella.com/articles/RSSFeed/article.html về cách đọc nguồn cấp dữ liệu rss bằng cách sử dụng Java).

+0

Cảm ơn bạn đã trả lời kỹ lưỡng! Tôi nghĩ rằng API sẽ làm việc tốt nhất cho tôi, nhưng tôi cũng sẽ xem xét sửa đổi ứng dụng Wordpress. Cảm ơn một lần nữa! – Argus9

+1

thư viện không hoạt động đối với tôi. Nó nằm trong cả dự án thư viện và dự án phụ thuộc nhưng logcat nói "noclassdeffounderror" với lớp "net.bican.wordpress.Wordpress". xin vui lòng giúp đỡ! –

+0

Bạn cần phải tạo một thư mục có tên là libs trong dự án của bạn và sao chép tệp jar ở đó và thêm nó vào đường dẫn xây dựng của bạn. Có những bài viết khác về điều này, tôi chỉ cho bạn http://stackoverflow.com/questions/1334802/how-can-i-use-external-jars-in-an-android-project – Welshboy

2

Nội dung tích hợp cho biết, 'net.bican: jwordpress: 0.6.4' là những gì bạn cần. Tuy nhiên, ví dụ ông đưa ra hiện không được chấp nhận. Không có thêm getRecentPosts (int) nhưng getPosts (FilterPost).

Vì vậy, bây giờ mã đúng là:

String username = args[0]; 
String password = args[1]; 
String xmlRpcUrl = args[2]; 
Wordpress wp = new Wordpress(username, password, xmlRpcUrl); 
FilterPost filter = new FilterPost() ; 
filter.setNumber(10); 
List<Post> recentPosts = wp.getPosts(filter); 

biết thêm kiểm tra ví dụ: https://github.com/canbican/wordpress-java/blob/bb4b60a008ee6d280aedd9174df4a657bff683ac/src/net/bican/wordpress/example/Main.java

Ngoài ra, nếu bạn đang sử dụng Gradle, kiểm tra điều này phụ thuộc nào vấn đề bạn có thể gặp phải: https://github.com/canbican/wordpress-java/issues/54

0

Có một cách thay thế nữa và hoạt động tốt,

bạn có thể cài đặt plugin json trong báo chí từ của bạn và bạn có thể truy xuất tất cả các bài viết bằng cách yêu cầu url ... và phân tích cú pháp json phản hồi trong chế độ xem android của bạn sẽ hoạt động.

Các vấn đề liên quan