JavaScript di động¶
Giới thiệu¶
Trong SoOn 10.0, chúng tôi đã phát hành một ứng dụng di động cho phép bạn truy cập tất cả ứng dụng SoOn (thậm chí cả các mô-đun tùy chỉnh của bạn).
Ứng dụng này là sự kết hợp của SoOn Web và Thành phần di động gốc. Nói cách khác, đó là một phiên bản Web SoOn được tải bên trong vùng chứa WebView gốc, di động.
Trang này trình bày cách bạn có thể truy cập các thành phần gốc của thiết bị di động như Máy ảnh, Rung, Thông báo và Bánh mì nướng thông qua Web SoOn (thông qua JavaScript). Để làm được điều này, bạn không cần phải là nhà phát triển thiết bị di động, nếu biết API JavaScript của SoOn, bạn có thể truy cập tất cả các tính năng di động có sẵn.
Cảnh báo
Những tính năng này chỉ hoạt động với SoOn Enterprise 10.0++
Làm thế nào nó hoạt động?¶
Hoạt động nội bộ của ứng dụng di động:

Tất nhiên, đó là một trang web tải trên vùng chứa Web gốc dành cho thiết bị di động. Nhưng nó được tích hợp theo cách mà bạn có thể truy cập các tài nguyên gốc từ JavaScript trên web của mình.
WebPages (SoOn Web) nằm ở trên cùng của mỗi lớp, trong đó lớp thứ hai là Cầu nối giữa SoOn Web (JS) và các thành phần di động gốc.
Khi bất kỳ lệnh gọi nào từ JavaScript được kích hoạt, nó sẽ chuyển qua Bridge và Bridge sẽ chuyển nó đến trình gọi gốc để thực hiện hành động đó.
Khi thành phần gốc đã hoàn thành công việc của mình, nó sẽ được chuyển lại đến Bridge và bạn nhận được kết quả đầu ra bằng JavaScript.
Thời gian xử lý của thành phần Gốc phụ thuộc vào những gì bạn đang yêu cầu từ tài nguyên Gốc. Ví dụ: Máy ảnh hoặc Vị trí GPS.
Làm thế nào để sử dụng nó?¶
Giống như SoOn Web Framework, Mobile API có thể được sử dụng ở mọi nơi bằng cách lấy đối tượng từ web_mobile.rpc

Đối tượng RPC dành cho thiết bị di động cung cấp danh sách các phương thức có sẵn (điều này chỉ hoạt động với ứng dụng dành cho thiết bị di động).
Kiểm tra xem phương thức có sẵn không và sau đó thực hiện nó.
phương pháp¶
Ghi chú
Mỗi phương thức trả về một đối tượng Trì hoãn JQuery trả về một từ điển JSON dữ liệu
Hiển thị bánh mì nướng trong thiết bị¶
- showToast()¶
- Đối số
args (
object()
) -- tin nhắn văn bản để hiển thị
Lời chúc mừng cung cấp phản hồi đơn giản về một thao tác trong một cửa sổ bật lên nhỏ. Nó chỉ lấp đầy khoảng trống cần thiết cho tin nhắn và hoạt động hiện tại vẫn hiển thị và tương tác.
mobile.methods.showToast({'message': 'Message sent'});

Thiết bị rung¶
- vibrate()¶
- Đối số
args (
object()
) -- Rung liên tục trong khoảng thời gian xác định (tính bằng mili giây).
Rung thiết bị di động với thời lượng nhất định.
mobile.methods.vibrate({'duration': 100});
Hiển thị thanh đồ ăn nhanh bằng hành động¶
- showSnackBar()¶
- Đối số
args (
object()
) -- (bắt buộc) Thông báo hiển thị trong thanh thông báo nhanh và hành động nhãn nút trong Thanh thông báo nhanh (tùy chọn)
- Trả về
Đúng
nếu người dùng nhấp vào nút Hành động,Sai
nếu SnackBar tự động bị loại bỏ sau một thời gian.
Snackbars cung cấp phản hồi nhẹ về một hoạt động. Chúng hiển thị một thông báo ngắn gọn ở cuối màn hình trên thiết bị di động hoặc ở góc dưới bên trái trên các thiết bị lớn hơn. Thanh đồ ăn nhanh xuất hiện phía trên tất cả các thành phần khác trên màn hình và mỗi lần chỉ có thể hiển thị một thanh.
mobile.methods.showSnackBar({'message': 'Message is deleted', 'btn_text': 'Undo'}).then(function(result){
if(result){
// Do undo operation
}else{
// Snack Bar dismissed
}
});

Hiển thị thông báo¶
- showNotification()¶
- Đối số
args (
object()
) -- tiêu đề (hàng đầu tiên) của thông báo, tin nhắn (hàng thứ hai) của thông báo, trong thông báo tiêu chuẩn.
Thông báo là thông báo bạn có thể hiển thị cho người dùng bên ngoài giao diện người dùng thông thường của ứng dụng. Khi bạn yêu cầu hệ thống đưa ra thông báo, thông báo đầu tiên sẽ xuất hiện dưới dạng biểu tượng trong vùng thông báo. Để xem chi tiết thông báo, người dùng mở ngăn thông báo. Cả khu vực thông báo và ngăn thông báo đều là những khu vực do hệ thống kiểm soát mà người dùng có thể xem bất kỳ lúc nào.
mobile.showNotification({'title': 'Simple Notification', 'message': 'This is a test for a simple notification'})

Tạo liên hệ trong thiết bị¶
- addContact()¶
- Đối số
args (
object()
) -- Từ điển với các chi tiết liên lạc. Các khóa có thể có (tên, điện thoại di động, điện thoại, fax, email, trang web, đường phố, đường phố2, country_id, state_id, thành phố, zip, parent_id, chức năng và hình ảnh)
Tạo một liên hệ thiết bị mới với các chi tiết liên lạc đã cho.
var contact = {
'name': 'Michel Fletcher',
'mobile': '9999999999',
'phone': '7954856587',
'fax': '765898745',
'email': 'michel.fletcher@agrolait.example.com',
'website': 'http://www.agrolait.com',
'street': '69 rue de Namur',
'street2': false,
'country_id': [21, 'Belgium'],
'state_id': false,
'city': 'Wavre',
'zip': '1300',
'parent_id': [8, 'Agrolait'],
'function': 'Analyst',
'image': '<<BASE 64 Image Data>>'
}
mobile.methods.addContact(contact);

Quét mã vạch¶
- scanBarcode()¶
- Trả về
Đã quét
code
từ bất kỳ mã vạch nào
API mã vạch phát hiện mã vạch theo thời gian thực, trên thiết bị, theo bất kỳ hướng nào.
API mã vạch có thể đọc các định dạng mã vạch sau:
Mã vạch 1D: EAN-13, EAN-8, UPC-A, UPC-E, Code-39, Code-93, Code-128, ITF, Codabar
Mã vạch 2D: Mã QR, Ma trận dữ liệu, PDF-417, AZTEC
mobile.methods.scanBarcode().then(function(code){
if(code){
// Perform operation with the scanned code
}
});
Chuyển đổi tài khoản trên thiết bị¶
- switchAccount()¶
Sử dụng switchAccount để chuyển từ tài khoản này sang tài khoản khác trên thiết bị.
mobile.methods.switchAccount();
