2012-07-12 17 views
9

Tôi hiện đang trong một dự án cần phát hiện thiết bị có thể thực hiện cuộc gọi điện thoại hay không. Tùy thuộc vào việc có hay không, tôi cần chuyển đổi chế độ xem và áp dụng hai chức năng khác nhau, một nút là thực hiện cuộc gọi đến một số cụ thể bằng tel: trên html, nút kia là nút để bạn nhập số của bạn và sẽ gọi cho bạn bằng cách sử dụng tính vô hình. Hiện tại, tôi đã quản lý để cài đặt các plugin/thư viện như wurfl hoặc terawurfl, không có cách nào đáng tin cậy 100% để phát hiện xem điện thoại di động hoặc máy tính bảng/máy tính để bàn có thể thực hiện cuộc gọi điện thoại hay không.Tôi làm cách nào để biết liệu tel: có thực sự được liên kết với một thiết bị có thể thực hiện cuộc gọi không?

Có giải pháp phía máy chủ hay bên người dùng nào giống như thẻ mà tôi bỏ lỡ trong wurfl/terawurfl hoặc thậm chí là cuộc gọi javascript ajax mà tôi có thể thực hiện để phát hiện "có tel: hoạt động" hoặc một cái gì đó có tính chất đó.

+0

có thể không trả lời được câu hỏi của bạn, nhưng hãy xem mẹo này: http://stackoverflow.com/questions/836777/how -to-detect-browser-protocol-handlers –

+0

Không; JavaScript bị giới hạn trong trình duyệt, nó không có cách nào để truy cập vào giao thức hoặc các trình xử lý liên quan. Bạn sẽ phải cung cấp lựa chọn cho người dùng của mình ('Nếu bạn có Skype hoặc đây là điện thoại và bạn muốn thực hiện cuộc gọi, hãy nhấp vào liên kết "gọi số này", nếu không nhấp vào "we \' ' gọi cho bạn "nút."). –

+1

Tôi thực sự nghĩ rằng bạn nên suy nghĩ lại cách tiếp cận của mình. Ngay cả khi điện thoại/máy tính bảng có một SIM hợp lệ và nằm trên mạng, nó có thể bị chặn bởi việc thực hiện cuộc gọi điện thoại bởi nhà điều hành hoặc bởi người dùng (chặn cuộc gọi/chặn cuộc gọi); hoặc có thể không gọi được số điện thoại cụ thể của bạn (không có dịch vụ, hoặc cuộc gọi quốc tế bị hạn chế, v.v.) sẽ không có cách nào để bạn biết trừ khi bạn thực hiện cuộc gọi _đến số_ mà bạn đang cố truy cập. –

Trả lời

1

Đây là lớp PHP tôi sử dụng để phát hiện các trình duyệt di động mà bạn có thể tải xuống miễn phí. http://code.google.com/p/php-mobile-detect/

Khi lớp trong thiết lập một cách chính xác, bạn có thể sử dụng mã như thế này:

if ($detect->isMobile()) { 
    // any mobile platform 
    // place telephone code here 
} 

hoặc bạn có thể cụ thể hơn:

if($detect->isiOS()){ 
    // code to run for the Apple iOS platform. 
} 

này thường được sử dụng để tạo các trang web điện thoại di động tuy nhiên nó sẽ phù hợp với mục đích của bạn :)

+0

giải pháp này thực sự làm các trick bằng cách sử dụng các mẫu trong useragent thay vì có một cơ sở dữ liệu .... cộng với bạn có thể thay đổi nó và tạo một thể loại mới. Có vẻ như một plugin hữu ích, nhưng làm cho tôi nhận ra rằng nhiều thiết bị có thể có số điện thoại, nhưng không có ý định thực hiện cuộc gọi ... –

+0

Rất đúng, công nghệ di động thật tuyệt vời và nó sẽ tiếp tục trở nên tốt hơn. Tôi vui vì điều này đã giúp ích cho bạn, nó tiết kiệm rất nhiều thời gian và công việc xây dựng nó cho chính bạn! Tôi sử dụng điều này cho các trang web được tối ưu hóa cho thiết bị –

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