2010-10-29 48 views
5

Tôi có một ứng dụng chạy trên thiết bị di động như android và tôi có một số mã theo dõi lưu lượng truy cập của bên thứ ba để theo dõi việc sử dụng ứng dụng của mình. Vì vậy, mỗi khi người dùng mở ứng dụng của tôi, mã js sẽ gửi một ping đến máy chủ theo dõi bên thứ 3. Tuy nhiên tôi không chắc chắn nếu có một cách dễ dàng để nhúng mã js trực tiếp vào ứng dụng của tôi mà không phải là trình duyệt dựa và không thể giải thích mã js. Vì vậy, tôi có thể phải thực thi mã js ở phía máy chủ. Mã của bên thứ 3 giống như sau:Cách dễ nhất để chạy javascript ở phía máy chủ

<script type="text/javascript" src="http://www.3rdparty.com/tracking.lib.js"></script> 
<script type="text/javascript"> 
    var instance = new Tracking(); 
    instance.run(); 
</script> 

Cách dễ nhất để chạy mã này ở phía máy chủ là gì?

Xin cảm ơn trước.

+1

Tôi nghĩ bạn nên điều tra mã đang làm gì trước khi quyết định xem có chạy trên máy chủ hay không. Ví dụ: hầu hết các công cụ theo dõi như vậy dựa trên cookie, cần phải là một giá trị duy nhất cho mỗi khách hàng. – Pointy

Trả lời

5

Có một số giải pháp để chạy javascript phía máy chủ (Node.JS hoặc thứ gì đó dựa trên Rhino), nhưng mã đó có thể phụ thuộc vào chức năng chỉ tồn tại trong trình duyệt.

EDIT

Tôi đã trả lời câu hỏi, nhưng tôi đã không thực sự giải quyết vấn đề. Ngay cả khi mã sẽ thực thi chạy trên máy chủ, nó sẽ không hoạt động như dự định. Bạn thực sự cần phải đưa ra một giải pháp tốt hơn để theo dõi việc sử dụng ứng dụng không dựa trên web.

Câu hỏi mà bạn nên hỏi là: Làm cách nào để theo dõi việc sử dụng ứng dụng Android?

Nếu bạn đang chạy máy chủ, bạn có thể viết một dịch vụ web đơn giản để ghi nhật ký sử dụng, bạn chỉ cần mở kết nối HTTP từ bên trong ứng dụng của mình.

Tôi sẽ ngạc nhiên nếu không có giải pháp hiện có, nhưng tôi không phải là một người Android, vì vậy tôi sẽ không biết.

Tôi sẽ đề xuất xóa câu hỏi này và thay thế bằng một nhắm mục tiêu những gì bạn đang thực sự cố gắng thực hiện.

+0

Cảm ơn. Nhưng bạn có thể giải thích cách thực hiện điều đó trong node.js không? – Shawn

+0

@Shawn, đã cập nhật câu trả lời của tôi để hữu ích hơn. – mikerobi

1

Tôi không chắc chắn nếu nó thực sự có thể.

Nếu nó là một Java-Server, bạn có thể sử dụng khung BeanScripting, nhưng:

Nếu mã Javascript hiện một số tính toán như màn hình cỡ, Trình duyệt vv Bạn sẽ không nhận được thông tin đó.

Bạn không thể nhận IP cũng như HTTP-Client (Trình duyệt nào, v.v.).

Tôi không biết mã JavaScript, vì vậy tôi có thể sai.

Thực tế, mã Javascript sẽ gọi cho Máy chủ của bạn để lưu trữ thông tin. Bạn có thể đảo ngược khắc thông tin được gửi đi, bằng cách sử dụng Network-Sniffer.

0

'Vì vậy, tôi có thể phải thực thi mã js ở phía máy chủ. 'không cần nó chạy trên trình duyệt bên nclient, hoặc thành phần lke trình duyệt trong ứng dụng gốc của bạn - "Web view" hoặc yêu cầu họ cho REST API, nhận thông tin từ thiết bị cầm tay từ mã gốc và gọi API (dịch vụ web trên http trong hầu hết các trường hợp)

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