Tôi có thể gọi điện từ HTML trên Android không?


84

Để thực hiện cuộc gọi điện thoại qua HTML trên một chiếc iPhone để tạo một <A/>thẻ với một href định dạng như: <a href='tel:123-555-1212'>Dial Me</a>.

Có phần mềm tương đương cho HTML trên Android không?

XÁC NHẬN - sử dụng định dạng href = 'tele: 123-555-1212' thực sự hoạt động trên Android. Tôi đang thử nghiệm ứng dụng trong trình bao bọc Java gốc trên thiết bị. Dường như chúng ta không thể thực hiện cuộc gọi từ một ứng dụng web được lưu trữ trong Native Wrapper.

Câu trả lời:


128

Có bạn có thể; nó cũng hoạt động trên Android :

tel: phone_number
Gọi số điện thoại đã nhập. Các số điện thoại hợp lệ như được định nghĩa trong IETF RFC 3966 được chấp nhận. Các ví dụ hợp lệ bao gồm:

* tel:2125551212
* tel: (212) 555 1212

Trình duyệt Android sử dụng ứng dụng Điện thoại để xử lý lược đồ "điện thoại", như được định nghĩa bởi RFC 3966.
Nhấp vào liên kết như:

<a href="tel:2125551212">2125551212</a>

trên Android sẽ hiển thị ứng dụng Điện thoại và nhập trước các chữ số cho 2125551212 mà không cần quay số tự động.

Hãy xem RFC3966


Khi bạn nhấp vào liên kết, iPhone sẽ tự động gọi điện (tự động quay số)? hoặc nó giống như Android? (mở trình quay số, và bạn cần bấm nút gọi).
Enrique

7
Hãy chắc chắn rằng bạn có điều này: <dụng-phép android: name = "android.permission.CALL_PHONE" /> trong manifest.xml của bạn
jasonflaherty

25

Tôi vừa viết một ứng dụng có thể thực hiện cuộc gọi từ một trang web - Tôi không biết liệu điều này có hữu ích cho bạn không, nhưng tôi vẫn đưa vào:

trong onCreate của bạn, bạn sẽ cần sử dụng chế độ xem web và chỉ định WebViewClient, như bên dưới:

browser = (WebView) findViewById(R.id.webkit);
browser.setWebViewClient(new InternalWebViewClient());

sau đó xử lý nhấp chuột vào một số điện thoại như sau:

private class InternalWebViewClient extends WebViewClient {

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
         if (url.indexOf("tel:") > -1) {
            startActivity(new Intent(Intent.ACTION_DIAL, Uri.parse(url)));
            return true;
        } else {
            return false;
        }
    }
}

Hãy cho tôi biết nếu bạn cần thêm gợi ý.


1
Cảm ơn - vâng, đó là một cách tiếp cận tốt! Tôi đã kết thúc việc thêm quyền truy cập vào ứng dụng của mình từ JavaScript w / addJavascriptInterface
Kevin

21

Nói chung trên Android, nếu bạn chỉ hiển thị số điện thoại và người dùng nhấn vào nó, nó sẽ kéo nó lên trong trình quay số. Vì vậy, bạn chỉ có thể làm

For more information, call us at <b>416-555-1234</b>

Khi người dùng nhấn vào phần in đậm, vì nó được định dạng giống như một số điện thoại, trình quay số sẽ bật lên và hiển thị 4165551234trong trường số điện thoại. Người dùng sau đó chỉ cần nhấn nút gọi.

Bạn có thể làm được

For more information, call us at <a href='tel:416-555-1234'>416-555-1234</a>

để bao gồm cả hai thiết bị, nhưng tôi không chắc điều này sẽ hoạt động tốt như thế nào. Tôi sẽ thử ngay và cho bạn biết.

CHỈNH SỬA: Tôi vừa thử cái này trên HTC Magic của mình chạy Rogers 1.5 đã root với SenseUI:

For more information, call us at <a href='tel:416-555-1234'>416-555-1234</a><br />
<br />
Call at <a href='tel:416-555-1234'>our number</a>
<br />
<br />
<a href='416-555-1234'>Blah</a>
<br />
<br />
For more info, call <b>416-555-1234</b>

Cái đầu tiên, bao quanh bằng liên kết và in số điện thoại, hoạt động hoàn hảo. Kéo trình quay số lên bằng dấu gạch ngang và tất cả. Điều thứ hai, nói our numbervới liên kết, hoạt động giống hệt nhau. Điều này có nghĩa là việc sử dụng <a href='tel:xxx-xxx-xxxx'>sẽ hoạt động trên toàn diện, nhưng tôi không khuyên bạn nên thực hiện một bài kiểm tra của mình để kết luận.

Liên kết thẳng đến số đã thực hiện như mong đợi: Đã cố gắng kéo tệp không tồn tại lên từ máy chủ.

Cách cuối cùng đã làm như tôi đã đề cập ở trên và kéo trình quay số lên, nhưng không có dấu gạch nối định dạng đẹp.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.