AndroidJs手机开发-接口
- 前端开发技术
- 2023-12-25
- 3839热度
- 0评论
WIFI
app.wifi 是 Wi-Fi API 的实例,它提供从应用程序访问 Wi-Fi 的功能。要使用此 API,您需要在 package.json 文件中添加这些权限。
android.permission.ACCESS_WIFI_STATE
android.permission.CHANGE_WIFI_STATE
Wi-Fi API 的工作示例
new Promise(function(resolve, reject){
app.wifi.enable();
setTimeout(resolve, 5000);
}).then(function(){
available_networks = app.wifi.getScanResult();
available_networks.forEach(function(network){
if(network.SSID == "test"){
app.wifi.connect(network.SSID, "");
}
});
});
方法
app.wifi.enable()
启用 Android 设备的 Wi-Fi 功能。
以下代码示例
app.wifi.enable();
app.wifi.disable()
禁用 Android 设备的 Wi-Fi 功能(如果已启用)。
以下代码示例
app.wifi.disable();
app.wifi.connect(SSID, password)
- SSID String
要连接的网络的 SSID。 - password String
要连接的网络的密码。
注意: 如果要连接开放网络,请提供密码 = ""
将 Wi-Fi 连接到提供的 SSID 网络。
以下代码示例
app.wifi.connect("test", "");
app.wifi.disconnect()
断开当前连接网络的 Wi-Fi 连接。
以下代码示例
app.wifi.disconnect();
app.wifi.getScanResults()
返回包含当前可用 wifi 网络详细信息的 JSON 对象数组。
以上代码示例
let networks = app.wifi.getScanResults();
networks.forEach(function(network){
console.log(network.SSID);
})
app.wifi.getState()
返回 Wi-Fi 的当前状态。
以下代码示例
console.log(app.wifi.getState());
app.wifi.isEnabled()
如果 Wi-Fi 已启用,则返回 true,否则返回 false。
以下代码示例
console.log(app.wifi.isEnabled());
热点Hotspot
app.hotspot 是 Hotspot API 的实例,它提供了从你的应用程序访问 Hotspot 的功能。要使用该 API,您需要在 package.json 文件中添加这些权限。
android.permission.ACCESS_WIFI_STATE
android.permission.CHANGE_WIFI_STATE
热点应用程序接口工作示例
app.hotspot.enable("hello");
console.log(app.hotspot.isEnabled());
方法
app.hotspot.enable(ssid)
- ssid 字符串
要创建的网络的 ssid 名称。
启用 Android 设备的热点。
app.hotspot.enable("hello");
app.hotspot.disable()
禁用安卓设备的热点(如果已启用)。
app.hotspot.disable();
app.hotspot.isEnabled()
如果启用了热点,则返回 true,否则返回 false。
console.log(app.hotspot.isEnabled());
摄像头
相机 API 提供与相机交互的各种功能。要使用此 API,必须在 package.json 文件中添加此权限。
android.permission.CAMERA
下面的示例展示了如何在应用程序中启动摄像头
// In front process (web pages)
<html>
<head>
// add androidjs.js to get the API's of `Android JS`.
<script src = "./assets/ipc/androidjs.js" ></script>
</head>
<body>
<video id = "camera" autoplay></video>
</body>
<script>
window.onload = function(){
app.camera.init(document.getElementById('camera'), {video:true, audio: false});
}
</script>
</html>
方法
app.camera.init(dom, options)
- dom 是 HTML dom,用于初始化相机。
- options 是一个 JavaScript 对象,用于定义服务
- video 可以是 true/false 或一个对象 {deviceId: {exact: devices[0]}}
- audio:可以是 true/false 或对象 {deviceId: {设备[0]}}。
app.camera.init(document.getElementById('camera'), {video: true, audio: false});
app.camera.getDevices(callback)
- callback Function
- devices 是视频设备列表
开始收集所有可用视频设备的信息,完成后调用 callback(设备)。
app.camera.getDevices(function(devices){
console.log(devices);
})
app.camera.startRecording(options)
- options Object
- mimeType 视频类型或编解码器(例如:video/webm;codecs=vp9)
- bitsPerSecond 每秒比特率(例如 100000)
app.camera.startRecording({mimeType: 'video/webm;codecs=vp9', bitsPerSecond: 100000});
app.camera.stopRecording()
app.camera.stopRecording();
app.camera.saveRecording(filepath, filename, options)
- filepath 存储录制视频的文件路径(例如 /storage/emulated/0/)。
- filename 文件名
- options Object
- type 视频类型(如视频/Webm)
app.camera.saveRecording('/storage/emulated/0/', 'newVideo1.webm', {type:'video/webm'})
app.camera.previewRecording(dom, options)
- dom 预览录制视频的位置
- options Object
- type 视频类型(如视频/网络视频)
// <video id = "preview" autoplay></video>
app.camera.previewRecording(document.getElementById('preview'), {type: 'video/webm'});
app.camera.getBuffer(options, callback)
- callback Function
- buffer
- options Object
- type video type (i.e. video/webm)
app.camera.getBuffer({type: 'video/webm'}, function(buffer){
...
});
app.camera.takePhoto(cameraDom, previewDom)
- cameraDom 已初始化摄像机的 dom
- previewDom 是可选项,如果要预览捕获的图像,请提供用于预览的 dom,否则不提供
// <img id = "preview" autoplay></img>
app.camera.takePhoto(document.getElementById('camera'), document.getElementById('preview'));
app.camera.savePhoto(filepath, filename)
- filepath 存储拍摄照片的文件路径(例如:/storage/emulated/0/)。
- filename 文件名
// <img id = "preview" autoplay></img>
app.camera.savePhoto('/storage/emulated/0/', 'test.webp');
麦克风
麦克风 API 提供与麦克风交互的各种功能。要使用此 API,您需要在 package.json 文件中添加这些权限。
android.permission.RECORD_AUDIO
android.permission.MODIFY_AUDIO_SETTINGS
下面的示例展示了如何在应用程序中录制音频
// In front process (web pages)
<html>
<head>
// add androidjs.js to get the API's of `Android JS`.
<script src = "./assets/ipc/androidjs.js" ></script>
</head>
<script>
window.onload = function(){
app.microphone.getDevices(function(devices){
app.microphone.startRecording({audio:{deviceId:{exact: devices[1]}}});
});
}
</script>
</html>
方法
app.microphone.getDevices(callback)
- callback Function
- devices 是音频设备列表
开始收集所有可用音频设备的信息,完成后调用 callback(设备)。
app.microphone.getDevices(function(devices){
console.log(devices);
})
app.microphone.startRecording(options)
- options Object
- audio 音频,可以是 true/false 或对象 {deviceId: {exact: devices[0]}}
app.microphone.startRecording({audio:true);
or
app.microphone.getDevices(function(devices){
app.microphone.startRecording({audio:{deviceId:{exact: devices[1]}}});
});
app.microphone.stopRecording()
app.microphone.stopRecording();
app.microphone.saveRecording(filepath, filename, options)
- filepath 文件路径,用于存储录制的音频(例如 /storage/emulated/0/)。
- filename 文件名
- options Object
- type 音频类型(例如:音频/webm)
app.microphone.saveRecording('/storage/emulated/0/', 'newAudio1.webm', {type:'audio/webm'})
app.microphone.previewRecording(dom, options)
- dom 预览已录制音频的位置
- options Object
- type 音频类型(如音频/Webm)
// <audio id = "preview" autoplay></audio>
app.camera.previewRecording(document.getElementById('preview'), {type: 'audio/webm'});
app.microphone.getBuffer(options, callback)
- callback Function
- buffer
- options Object
- type audio type (i.e. audio/webm)
app.microphone.getBuffer({type: 'audio/webm'}, function(buffer){
...
});
通知
app.notification 是通知 API 的实例,它提供了初始化通知和在需要时显示通知的函数。
有两种通知
- 单行通知
- 多行通知
app.notification.init("Update", "1.2.5 is available");
app.notification.initBig("Update", ["there are lot's of changes", "in this version", "would you like to install"]);
app.notification.show(2);
方法
app.notification.init(title, msg)
- title String
- msg String
您需要提供标题和 msg 来初始化您的通知。
app.notification.init("Update", "1.2.5 is available");
app.notification.initBig(title, msg)
- title String
- msg Array of Strings
用于初始化通知的已用视图,为此您需要提供标题和字符串数组(此函数为可选项)。注意:数组的最大大小为 6
app.notification.init("update", "1.2.5 update available");
app.notification.initBig("Update", ["there are lot's of changes", "in this version", "would you like to install"]);
app.notification.show(id)
- id Int
此功能用于显示已初始化的通知。
app.notification.show(1);
屏幕消息Toast
app.toast 是 Toast API 的实例,它提供了显示本地屏幕消息的函数。
app.toast.show("Hello Android JS", 1);
方法
app.toast.show(text, duration)
- text String
- duration Int
- 0 表示短
- 1 表示长
app.toast.show("Hello Android JS", 0);
联系人
app.contact 是 Contact API 的实例,它提供了从应用程序访问联系人的功能。要使用此 API,您需要在 package.json 文件中添加这些权限。
android.permission.READ_CONTACTS
android.permission.WRITE_CONTACTS
var contacts = app.contact.getAll();
console.log(contacts);
方法
app.contact.getAll()
返回包含用户手机中所有可用联系人详细信息的 JSON 对象数组。
let contacts = app.contact.getAll();
contacts.forEach(function(contact){
console.log(contact.name, contact.phone_number, contact.email);
})
app.contact.add(name, number, email)
- name String
要添加联系人的姓名。 - number String
要添加到联系人中的号码。 - email String
要添加到联系人中的电子邮件(电子邮件为可选项)。
将给定的联系人信息添加到用户的手机中。
注意:它返回一个 JSON 对象,{error:true/false, msg:'error msg'} 如果联系人添加成功,则错误为 false,否则为 true。
let name = 'alex';
let number = '123457896'
let email = 'example@androidjs.com'
let status = app.contact.add(name, number, email);
if(!status.error){
console.log('contact added to phone');
}else{
console.log(status.error, status.msg);
}
app.contact.getByName(name)
- name String
- name 要搜索的名称。
注:如果找到记录,则返回 uesr 详细信息的 JSON 对象,否则返回错误对象
let name = "alex"
let status = app.contact.getByName(name);
if(status.error == undefined){
console.log(status.name, status.phone_number, status.email);
}else{
console.log(status.error, status.msg);
}
app.contact.getCount()
返回用户手机中保存的联系人总数。
let count = app.contact.getCount();
console.log(count);
DeepLink
app.deeplink 是 DeepLink API 的实例,它提供了启用 DeepLink 到应用程序内容的功能。
注意:要在应用程序中启用 DeepLink,您必须进行以下所有配置。
首先更新Package.JSON
为了在应用程序中启用深度链接,您必须在应用程序的 package.json 文件中定义具有以下属性的对象数组
- 您需要在 package.json 中定义 deep-link 属性,它是scheme 和host对象的数组。
- 您可以定义任意多的scheme和host
scheme: 您希望在哪个协议上启用应用程序的深度链接
host: 是您要深度链接应用程序的特定host
{
"deep-link":[
{
"scheme" : "http",
"host" : "android-js.github.io"
},
{
"scheme" : "https",
"host" : "android-js.github.io"
}
]
}
每当用户点击定义的链接或主机时,您的应用程序将被列为建议在您的应用程序中打开该链接
访问应用程序中的链接
方法
app.deeplink.getLink()
返回用户点击后在应用程序中打开的链接
注:如果有链接,则返回链接,否则返回 -1
// In views of your app let link = app.deeplink.getLink(); if(link != '-1') { app.loadURL(link); }
短信
app.sms 是 SMS API 的实例,它提供了从应用程序发送短信的功能。要使用此 API,您需要在 package.json 文件中设置此权限
android.permission.SEND_SMS
app.sms.send("123457890", "Hello this is from Android JS");
方法
app.sms.send(number, message)
- number String
- message String
app.sms.send("123457890", "Hello this is from Android JS");
地址位置
app.location 是位置 API 的实例,它提供了获取用户当前位置的经度和纬度的功能。要使用此 API,您需要在 package.json 文件中设置以下权限。
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_COARSE_LOCATION
app.location.get();
方法
app.location.get()
返回包含属性纬度、经度和错误的 JSON 对象
注意:如果 error = true,则返回错误信息
mobileData
app.mobiledata 是移动数据 API 的一个实例,它提供了从应用程序访问设备数据的功能。
const status = app.mobiledata.isEnabled();
console.log("Mobile Data status: ", status);
方法
app.mobiledata.isEnabled()
如果已启用Mobile Data,则返回 true,否则返回 false。
APP对象
应用程序是app模块的一个实例,该模块提供与应用程序交互的各种功能。
方法
app.getPath(name)
- name String
应用程序是app模块的一个实例,该模块提供与app交互的各种功能。
您可以通过名称请求以下路径:
root root directory (i.e. /system)
cache cache directory (i.e. /cache)
data system's data directory (i.e. /data)
storage internal storage (i.e. /storage/emulated/0)
alarms storage Alarms directory (i.e. /storage/emulated/0/Alarms)
dcim storage DCIM directory (i.e. /storage/emulated/0/DCIM)
downloads storage Download directory (i.e. /storage/emulated/0/Download)
movies storage Movies directory (i.e. /storage/emulated/0/Movies)
music storage Music directory (i.e. /storage/emulated/0/Music)
notifications storage Notifications directory (i.e. /storage/emulated/0/Notifications)
pictures storage Pictures directory (i.e. /storage/emulated/0/Pictures)
podcasts storage Podcasts directory (i.e. /storage/emulated/0/Podcasts)
ringtones storage Rongtones directory (i.e. /storage/emulated/0/Ringtones)
appData application data directory (i.e. /data/data/package/files)
userData application user directory (i.e. /storage/sdcard0/Android/data/package/files)
例:
let path = app.getPath('userData');
console.log(path);
app.loadURL(url)
- url URL
在 android webview 中加载 url,url 必须包含协议前缀,如 http:// 或 file://。
app.loadURL('https://google.com');
app.reload()
重新加载 Android webview。
app.reload();
API调用
Call API
app.call 是调用 API 的实例,它提供了本地调用(native calls)的功能。要使用此 API,您需要在 package.json 文件中设置此权限。
android.permission.CALL_PHONE
app.call.makeCall("123457890");