3-3 uniapp、HTML5+、Native.js 功能代码汇总
本文只适用于 APP
代码汇总
Android平台
监听手机锁屏,解锁,开屏
var receiver;
mui.plusReady(function () {
// 获取activity
main = plus.android.runtimeMainActivity();
// 广播接收
var ALARM_RECEIVER = "alarm_receiver";
receiver = plus.android.implements('io.dcloud.feature.internal.reflect.BroadcastReceiver', {
// 实现onReceiver回调函数
onReceive: function (context, intent) {
var Intent = plus.android.importClass('android.content.Intent');
console.log(intent.getAction());
//action = intent.getAction();
if (intent.getAction() == Intent.ACTION_SCREEN_ON) {
console.log('开屏')
} else if (intent.getAction() == Intent.ACTION_SCREEN_OFF) {
console.log('锁屏')
} else if (intent.getAction() == Intent.ACTION_USER_PRESENT) {
console.log('解锁')
}
result.textContent += '\nAction :' + intent.getAction();
main.unregisterReceiver(receiver);
}
});
var IntentFilter = plus.android.importClass('android.content.IntentFilter');
var Intent = plus.android.importClass('android.content.Intent');
var filter = new IntentFilter();
filter.addAction(Intent.ACTION_SCREEN_ON);
filter.addAction(Intent.ACTION_SCREEN_OFF);
filter.addAction(Intent.ACTION_USER_PRESENT);
// 注册监听
main.registerReceiver(receiver, filter);
})
直接拨打电话
// 弹出询问框
uni.makePhoneCall({
phoneNumber: '10086',
success: (res) => {
console.log('调用成功!')
},
fail: (res) => {
console.log('调用失败!')
}
})
// false 直接打了,true 弹出询问框
plus.device.dial("10086", false);
// 不弹出询问框直接拨打电话
// 导入Activity、Intent类
var Intent = plus.android.importClass("android.content.Intent");
var Uri = plus.android.importClass("android.net.Uri");
// 获取主Activity对象的实例
var main = plus.android.runtimeMainActivity();
// 创建Intent
// 这里可修改电话号码
var uri = Uri.parse("tel:10086");
var call = new Intent("android.intent.action.CALL", uri);
// 调用startActivity方法拨打电话
main.startActivity(call);
// ...
将程序切换到后台
var main = plus.android.runtimeMainActivity();
main.moveTaskToBack(false);
强制弹出软键盘
var nativeWebview, imm, InputMethodManager;
var initNativeObjects = function () {
if (mui.os.android) {
var main = plus.android.runtimeMainActivity();
var Context = plus.android.importClass("android.content.Context");
InputMethodManager = plus.android.importClass("android.view.inputmethod.InputMethodManager");
imm = main.getSystemService(Context.INPUT_METHOD_SERVICE);
} else {
nativeWebview = plus.webview.currentWebview().nativeInstanceObject();
}
};
var showSoftInput = function () {
if (mui.os.android) {
imm.toggleSoftInput(0, InputMethodManager.SHOW_FORCED);
} else {
nativeWebview.plusCallMethod({
"setKeyboardDisplayRequiresUserAction": false
});
}
setTimeout(function () {
var inputElem = document.querySelector('input');
inputElem.focus();
inputElem.parentNode.classList.add('mui-active'); //第一个是search,加上激活样式
}, 200);
};
mui.plusReady(function () {
setTimeout(function () {
initNativeObjects();
showSoftInput();
}, 50)
});
获取安卓设备 device.uuid
plus.device.uuid;
var mainActivity = plus.android.runtimeMainActivity();
var Settings = plus.android.importClass("android.provider.Settings");
console.log(Settings.Secure.getString(mainActivity.getContentResolver(), Settings.Secure.ANDROID_ID));
得到手机MAC地址
var mac = "xxx-xxx-xxx-xxx";
if (plus.os.name == "Android") {
// WifiManager
var Context = plus.android.importClass("android.content.Context");
var WifiManager = plus.android.importClass("android.net.wifi.WifiManager");
var wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);
var WifiInfo = plus.android.importClass("android.net.wifi.WifiInfo");
var wifiInfo = wifiManager.getConnectionInfo();
mac = wifiInfo.getMacAddress();
}
return mac;
var net = plus.android.importClass("java.net.NetworkInterface")
var wl0 = net.getByName('wlan0')
var macByte = wl0.getHardwareAddress()
var str = ''
// 下面这段代码来自网络
for (var i = 0; i < macByte.length; i++) {
var tmp = "";
var num = macByte[i];
if (num < 0) {
tmp = (255 + num + 1).toString(16);
} else {
tmp = num.toString(16);
}
if (tmp.length == 1) {
tmp = "0" + tmp;
}
str += tmp;
}
console.log('mac', str)
获取手机内存信息
var memoryInfo = '';
if (plus.os.name == "Android") {
var Context = plus.android.importClass("android.content.Context");
var MemoryInfo = plus.android.importClass("android.app.ActivityManager.MemoryInfo");
var memortInfo = plus.android.importClass("android.app.ActivityManager");
var activityService = plus.android.runtimeMainActivity().getSystemService(Context.ACTIVITY_SERVICE);
activityService.getMemoryInfo(MemoryInfo);
memoryInfo = memortInfo.availMem;
}
return memoryInfo;
获取手机内部总的存储空间
var internalMemSize = 0;
if (plus.os.name == "Android") {
var environment = plus.android.importClass("android.os.Environment");
var statFs = plus.android.importClass("android.os.StatFs");
var files = plus.android.importClass("java.io.File");
var Files = environment.getDataDirectory();
var StatFs = new statFs(Files.getPath());
var blockSize = parseFloat(StatFs.getBlockSize());
var blockCount = parseFloat(StatFs.getBlockCount());
internalMemSize = blockSize * blockCount;
}
return internalMemSize;
获取总内存
var memInfo = '/proc/meminfo';
var temp = '',
ramSize = '',
arrays, initMemory;
var fileReader = plus.android.importClass("java.io.FileReader");
var bufferedReader = plus.android.importClass("java.io.BufferedReader");
var FileReader = new fileReader(memInfo);
var BufferedReader = new bufferedReader(FileReader, 8192);
while ((temp = BufferedReader.readLine()) != null) {
if (-1 != temp.indexOf('MemTotal:')) {
var value = temp.replace(/[^0-9]/ig, "");
ramSize = Math.floor(parseInt(value) / (1024));
}
}
return ramSize;
获取手机CPU信息
var cpuInfo = '/proc/cpuinfo';
var temp = '',
cpuHardware;
var fileReader = plus.android.importClass("java.io.FileReader");
var bufferedReader = plus.android.importClass("java.io.BufferedReader");
var FileReader = new fileReader(cpuInfo);
var BufferedReader = new bufferedReader(FileReader, 8192);
while ((temp = BufferedReader.readLine()) != null) {
if (-1 != temp.indexOf('Hardware')) {
cpuHardware = temp.substr(parseInt(temp.indexOf(":")) + 1);
}
}
return cpuHardware;
获取CPU核数
var Runtime = plus.android.importClass("java.lang.Runtime");
var cpuCount = Runtime.getRuntime().availableProcessors();
return cpuCount;
启关闭蓝牙
main = plus.android.runtimeMainActivity();
BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");
BAdapter = BluetoothAdapter.getDefaultAdapter();
if (!BAdapter.isEnabled()) {
BAdapter.enable();
}
监听蓝牙开关状态
plus.bluetooth.getBluetoothAdapterState({
success: function (e) {
console.log('state success: ' + JSON.stringify(e));
},
fail: function (e) {
console.log('state failed: ' + JSON.stringify(e));
}
});
plus.bluetooth.onBluetoothAdapterStateChange(function (e) {
console.log('state changed: ' + JSON.stringify(e));
});
var main = plus.android.runtimeMainActivity();
var BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");
var BAdapter = new BluetoothAdapter.getDefaultAdapter();
var resultDiv = document.getElementById('output');
var receiver = plus.android.implements('io.dcloud.android.content.BroadcastReceiver', {
// 实现onReceiver回调函数
onReceive: function (context, intent) {
plus.android.importClass(intent);
console.log(intent.getAction());
resultDiv.textContent += '\nAction :' + intent.getAction();
main.unregisterReceiver(receiver);
}
});
var IntentFilter = plus.android.importClass('android.content.IntentFilter');
var filter = new IntentFilter();
// 监听蓝牙开关
filter.addAction(BAdapter.ACTION_STATE_CHANGED);
// 注册监听
main.registerReceiver(receiver, filter);
if (!BAdapter.isEnabled()) {
// 启动蓝牙
BAdapter.enable();
} else {
BAdapter.disable();
}
获取蓝牙设备列表
plus.bluetooth.getBluetoothDevices({
success: function (e) {
var devices = e.devices;
console.log('get devices success: ' + e.length);
for (var i in devices) {
console.log(i + ': ' + JSON.stringify(devices[i]));
}
},
fail: function (e) {
console.log('get devices failed: ' + JSON.stringify(e));
}
});
var main = plus.android.runtimeMainActivity();
var Context = plus.android.importClass("android.content.Context");
BManager = main.getSystemService(Context.BLUETOOTH_SERVICE);
// 引入相关的method函数
plus.android.importClass(BManager);
BAdapter = BManager.getAdapter();
// 引入相关的method函数,这样之后才会有isEna
plus.android.importClass(BAdapter);
var lists = BAdapter.getBondedDevices();
plus.android.importClass(lists);
var iterator = lists.iterator();
plus.android.importClass(iterator);
while (iterator.hasNext()) {
var d = iterator.next();
plus.android.importClass(d);
console.log("名称:" + d.getName() + ",地址:" + d.getAddress());
}
蓝牙连接票据打印机完整代码
//address=""搜索蓝牙//address=设备mac地址,自动配对给出mac地址的设备
function searchDevices(address) {
//注册类
var main = plus.android.runtimeMainActivity();
var IntentFilter = plus.android.importClass('android.content.IntentFilter');
var BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");
var BluetoothDevice = plus.android.importClass("android.bluetooth.BluetoothDevice");
var BAdapter = BluetoothAdapter.getDefaultAdapter();
console.log("开始搜索设备");
var filter = new IntentFilter();
var bdevice = new BluetoothDevice();
var on = null;
var un = null;
var vlist1 = document.getElementById('list1'); //注册容器用来显示未配对设备
vlist1.innerHTML = ''; //清空容器
var vlist2 = document.getElementById('list2'); //注册容器用来显示未配对设备
vlist2.innerHTML = ''; //清空容器
var button1 = document.getElementById('bt1');
button1.disabled = true;
button1.value = '正在搜索请稍候';
BAdapter.startDiscovery(); //开启搜索
var receiver;
receiver = plus.android.implements('io.dcloud.android.content.BroadcastReceiver', {
onReceive: function (context, intent) { //实现onReceiver回调函数
plus.android.importClass(intent); //通过intent实例引入intent类,方便以后的‘.’操作
console.log(intent.getAction()); //获取action
if (intent.getAction() == "android.bluetooth.adapter.action.DISCOVERY_FINISHED") {
main.unregisterReceiver(receiver); //取消监听
button1.disabled = false;
button1.value = '搜索设备';
console.log("搜索结束")
} else {
BleDevice = intent.getParcelableExtra(BluetoothDevice.EXTRA_DEVICE);
//判断是否配对
if (BleDevice.getBondState() == bdevice.BOND_NONE) {
console.log("未配对蓝牙设备:" + BleDevice.getName() + ' ' + BleDevice.getAddress());
//参数如果跟取得的mac地址一样就配对
if (address == BleDevice.getAddress()) {
if (BleDevice.createBond()) { //配对命令.createBond()
console.log("配对成功");
var li2 = document.createElement('li'); //注册
li2.setAttribute('id', BleDevice.getAddress()); //打印机mac地址
li2.setAttribute('onclick', 'print(id)'); //注册click点击列表进行打印
li2.innerText = BleDevice.getName();
vlist2.appendChild(li2);
}
} else {
if (BleDevice.getName() != on) { //判断防止重复添加
var li1 = document.createElement('li'); //注册
li1.setAttribute('id', BleDevice.getAddress()); //打印机mac地址
li1.setAttribute('onclick', 'searchDevices(id)'); //注册click点击列表进行配对
on = BleDevice.getName();
li1.innerText = on;
vlist1.appendChild(li1);
}
}
} else {
if (BleDevice.getName() != un) { //判断防止重复添加
console.log("已配对蓝牙设备:" + BleDevice.getName() + ' ' + BleDevice.getAddress());
var li2 = document.createElement('li'); //注册
li2.setAttribute('id', BleDevice.getAddress()); //打印机mac地址
li2.setAttribute('onclick', 'print(id)'); //注册click点击列表进行打印
un = BleDevice.getName();
li2.innerText = un;
vlist2.appendChild(li2);
}
}
}
}
});
filter.addAction(bdevice.ACTION_FOUND);
filter.addAction(BAdapter.ACTION_DISCOVERY_STARTED);
filter.addAction(BAdapter.ACTION_DISCOVERY_FINISHED);
filter.addAction(BAdapter.ACTION_STATE_CHANGED);
main.registerReceiver(receiver, filter); //注册监听
}
var device = null,
BAdapter = null,
BluetoothAdapter = null,
uuid = null,
main = null,
bluetoothSocket = null;
function print(mac_address) {
if (!mac_address) {
mui.toast('请选择蓝牙打印机');
return;
}
main = plus.android.runtimeMainActivity();
BluetoothAdapter = plus.android.importClass("android.bluetooth.BluetoothAdapter");
UUID = plus.android.importClass("java.util.UUID");
uuid = UUID.fromString("00001101-0000-1000-8000-00805F9B34FB");
BAdapter = BluetoothAdapter.getDefaultAdapter();
device = BAdapter.getRemoteDevice(mac_address);
plus.android.importClass(device);
bluetoothSocket = device.createInsecureRfcommSocketToServiceRecord(uuid);
plus.android.importClass(bluetoothSocket);
if (!bluetoothSocket.isConnected()) {
console.log('检测到设备未连接,尝试连接....');
bluetoothSocket.connect();
}
console.log('设备已连接');
if (bluetoothSocket.isConnected()) {
var outputStream = bluetoothSocket.getOutputStream();
plus.android.importClass(outputStream);
var string = "打印测试\r\n";
var bytes = plus.android.invoke(string, 'getBytes', 'gbk');
outputStream.write(bytes);
outputStream.flush();
device = null //这里关键
bluetoothSocket.close(); //必须关闭蓝牙连接否则意外断开的话打印错误
}
}
NFC 数据读取
function test_nfc() {
var main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass('android.content.Intent');
var Activity = plus.android.importClass('android.app.Activity');
var PendingIntent = plus.android.importClass('android.app.PendingIntent');
var IntentFilter = plus.android.importClass('android.content.IntentFilter');
var NfcAdapter = plus.android.importClass('android.nfc.NfcAdapter');
var nfcAdapter = NfcAdapter.getDefaultAdapter(main);
var intent = new Intent(main, main.getClass());
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
var pendingIntent = PendingIntent.getActivity(main, 0, intent, 0);
var ndef = new IntentFilter("android.nfc.action.TECH_DISCOVERED");
ndef.addDataType("*/*");
var intentFiltersArray = [ndef];
var techListsArray = [
["android.nfc.tech.IsoDep"],
["android.nfc.tech.NfcA"],
["android.nfc.tech.NfcB"],
["android.nfc.tech.NfcF"],
["android.nfc.tech.Nfcf"],
["android.nfc.tech.NfcV"],
["android.nfc.tech.NdefFormatable"],
["android.nfc.tech.MifareClassi"],
["android.nfc.tech.MifareUltralight"]
];
document.addEventListener("newintent",
function () {
console.log('newintent');
setTimeout(handle_nfc_data, 1000);
}, false);
document.addEventListener("pause", function (e) {
if (nfcAdapter) {
nfcAdapter.disableForegroundDispatch(main);
console.log('pause');
}
}, false);
document.addEventListener("resume", function (e) {
if (nfcAdapter) {
console.log('resume');
nfcAdapter.enableForegroundDispatch(main, pendingIntent, intentFiltersArray, techListsArray);
}
}, false);
nfcAdapter.enableForegroundDispatch(main, pendingIntent, intentFiltersArray, techListsArray);
}
function handle_nfc_data() {
var main = plus.android.runtimeMainActivity();
var runtimeIntent = main.getIntent();
var b = runtimeIntent.getExtras();
plus.android.importClass(b);
var set = b.keySet();
plus.android.importClass(set);
var sb;
var i = set.iterator();
plus.android.importClass(i);
var hasNest = i.hasNext();
var NfcA = plus.android.importClass("android.nfc.tech.NfcA");
var IsoDep = plus.android.importClass("android.nfc.tech.IsoDep");
var Tag = plus.android.importClass("android.nfc.Tag");
while (hasNest) {
var key = i.next();
var v = b.get(key);
if (v instanceof NfcA) {
var atqa = v.getAtqa();
var sak = v.getSak();
var tag = g.getTag();
plus.android.importClass(tag);
var techList = tag.getTechList();
console.log('NfcA Atqa=' + atqa + ";Sak=" + sak + ";techList=" + techList);
} else if (v instanceof IsoDep) {
var tag = g.getTag();
plus.android.importClass(tag);
var techList = tag.getTechList();
console.log('IsoDep techList=' + techList);
} else if (v instanceof Tag) {
var tag = v;
var techList = tag.getTechList();
console.log('Tag techList=' + techList);
}
console.log(key + ';v=' + v);
sb = key + "=" + v + "\n";
hasNest = i.hasNext();
console.log('hasNest=' + hasNest);
}
}
截屏
var ws = plus.webview.currentWebview();
var bitmap = new plus.nativeObj.Bitmap('test');
// 将webview内容绘制到Bitmap对象中
ws.draw(bitmap, function () {
console.log('截屏绘制图片成功');
}, function (e) {
console.log('截屏绘制图片失败:' + JSON.stringify(e));
});
获取设备当前网速
var TrafficStats; //TrafficStats类实例对象
var total_data; //总共接收到的流量
var traffic_data; //一定时间内接收到的流量
var intervalId; //定时器的返回值,用于控制计时器的停止
document.addEventListener('plusready', function () {
//console.log("所有plus api都应该在此事件发生后调用,否则会出现plus is undefined。"
TrafficStats = plus.android.importClass("android.net.TrafficStats");
total_data = TrafficStats.getTotalRxBytes();
intervalId = window.setInterval("getNetSpeed()", 1000);
});
/**
* 核心方法
*/
function getNetSpeed() {
traffic_data = TrafficStats.getTotalRxBytes() - total_data;
total_data = TrafficStats.getTotalRxBytes();
document.getElementById("net").value = bytesToSize(traffic_data);
console.log(bytesToSize(traffic_data));
}
//将byte自动转换为其他单位
function bytesToSize(bytes) {
if (bytes === 0) return '0 B/s';
var k = 1000, // or 1024
sizes = ['B/s', 'KB/s', 'MB/s', 'GB/s', 'TB/s', 'PB/s', 'EB/s', 'ZB/s', 'YB/s'],
i = Math.floor(Math.log(bytes) / Math.log(k));
return (bytes / Math.pow(k, i)).toPrecision(3) + ' ' + sizes[i];
}
打开网络设置
var ComponentName = plus.android.importClass("android.content.ComponentName");
var main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass("android.content.Intent");
var mIntent = new Intent();
var comp = new ComponentName("com.android.settings", "com.android.settings.WirelessSettings");
mIntent.setComponent(comp);
mIntent.setAction("android.intent.action.VIEW");
main.startActivity(mIntent);
打开各种系统设置界面
var main = plus.android.runtimeMainActivity(); //获取activity
var Intent = plus.android.importClass('android.content.Intent');
var Settings = plus.android.importClass('android.provider.Settings');
var intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS); //可设置表中所有Action字段
main.startActivity(intent);
获取WIFI列表
function loadWifiInfo() {
var Context = plus.android.importClass("android.content.Context");
var WifiManager = plus.android.importClass("android.net.wifi.WifiManager")
var wifiManager = plus.android.runtimeMainActivity().getSystemService(Context.WIFI_SERVICE);
var List = plus.android.importClass("java.util.List");
var ArrayList = plus.android.importClass("java.util.ArrayList");
var ScanResult = plus.android.importClass("android.net.wifi.ScanResult");
var wifis = new ArrayList();
wifis = wifiManager.getScanResults();
return wifis;
}
调用系统控件播放视频
plus.runtime.openFile()
var Intent = plus.android.importClass("android.content.Intent");
var Uri = plus.android.importClass("android.net.Uri");
var main = plus.android.runtimeMainActivity();
var intent = new Intent(Intent.ACTION_VIEW);
var uri = Uri.parse("网络视频地址");
intent.setDataAndType(uri, "video/*");
main.startActivity(intent);
调用 os 通讯录选择控件
var REQUESTCODE = 1000;
main = plus.android.runtimeMainActivity();
var Intent = plus.android.importClass('android.content.Intent');
var ContactsContract = plus.android.importClass('android.provider.ContactsContract');
var intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);
main.onActivityResult = function (requestCode, resultCode, data) {
if (REQUESTCODE == requestCode) {
var phoneNumber = null;
var resultString = "";
var context = main;
plus.android.importClass(data);
var contactData = data.getData();
var resolver = context.getContentResolver();
plus.android.importClass(resolver);
var cursor = resolver.query(contactData, null, null, null, null);
plus.android.importClass(cursor);
cursor.moveToFirst();
var s_ret;
var givenName = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
s_ret = givenName;
var contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
var pCursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId,
null, null);
while (pCursor.moveToNext()) {
phoneNumber = pCursor.getString(pCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
s_ret += '\n' + phoneNumber;
}
alert(s_ret);
cursor.close();
pCursor.close();
}
};
main.startActivityForResult(intent, REQUESTCODE);
原生日历提醒插入
var calanderURL = "content://com.android.calendar/calendars";
var calanderEventURL = "content://com.android.calendar/events";
var calanderRemiderURL = "content://com.android.calendar/reminders";
var calId;
function addEvent() {
var Cursor = plus.android.importClass("android.database.Cursor");
var Uri = plus.android.importClass("android.net.Uri");
var Calendar = plus.android.importClass("java.util.Calendar");
var main = plus.android.runtimeMainActivity();
var userCursor = plus.android.invoke(main.getContentResolver(), "query", Uri.parse(calanderURL), null, null, null, null);
if (plus.android.invoke(userCursor, "getCount") <= 0) {
console.log("添加账号" + plus.android.invoke(userCursor, "getCount"));
initCalendars();
} else {
console.log("开始插入:" + plus.android.invoke(userCursor, "getCount"));
plus.android.invoke(userCursor, "moveToLast");
calId = plus.android.invoke(userCursor, "getString", plus.android.invoke(userCursor, "getColumnIndex", "_id"));
var ContentValues = plus.android.importClass("android.content.ContentValues");
var events = new ContentValues();
events.put("title", "测试中==》呵呵");
events.put("description", "Frankie受空姐邀请,今天晚上10点以后将在Sheraton交流.lol~");
// 插入账户
events.put("calendar_id", calId);
console.log(calId);
events.put("eventLocation", "地球-华夏");
var mCalendar = Calendar.getInstance();
plus.android.invoke(mCalendar, "set", Calendar.HOUR_OF_DAY, 11);
plus.android.invoke(mCalendar, "set", Calendar.MINUTE, 0);
var start = plus.android.invoke(plus.android.invoke(mCalendar, "getTime"), "getTime");
var end = plus.android.invoke(plus.android.invoke(mCalendar, "getTime"), "getTime");
events.put("dtstart", start);
events.put("dtend", end);
events.put("hasAlarm", 1);
events.put("eventTimezone", "Asia/Shanghai"); // 这个是时区,必须有,
// 添加事件
var newEvent = plus.android.invoke(plus.android.runtimeMainActivity().getContentResolver(), "insert", Uri.parse(calanderEventURL), events);
// 事件提醒的设定
var id = plus.android.invoke(newEvent, "getLastPathSegment");
var values = new ContentValues();
values.put("event_id", id);
// 提前10分钟有提醒
values.put("minutes", "10");
values.put("method", "1");
plus.android.invoke(main.getContentResolver(), "insert", Uri.parse(calanderRemiderURL), values);
mui.toast("插入事件成功,可打开本地日历查看");
}
}
//添加账户
function initCalendars() {
var TimeZone = plus.android.importClass("java.util.TimeZone");
var timeZone = TimeZone.getDefault();
var ContentValues = plus.android.importClass("android.content.ContentValues");
var value = new ContentValues();
var Calendars = plus.android.importClass("android.provider.CalendarContract.Calendars");
value.put("name", "yy");
value.put("account_name", "hehe@gmail.com");
value.put("account_type", "com.android.exchange");
value.put("calendar_displayName", "mytt");
value.put("visible", 1);
value.put("calendar_color", -9206951);
value.put("calendar_access_level", "700");
value.put("sync_events", 1);
value.put("calendar_timezone", plus.android.invoke(timeZone, "getID"));
value.put("ownerAccount", "hehe@gmail.com");
value.put("canOrganizerRespond", 0);
var Uri = plus.android.importClass("android.net.Uri");
var calendarUri = Uri.parse("content://com.android.calendar/calendars");
var buildUpon = plus.android.invoke(calendarUri, "buildUpon");
var CalendarContract = plus.android.importClass("android.provider.CalendarContract");
plus.android.invoke(buildUpon, "appendQueryParameter", CalendarContract.CALLER_IS_SYNCADAPTER, "true");
plus.android.invoke(buildUpon, "appendQueryParameter", "account_name", "hehe@gmail.com");
plus.android.invoke(buildUpon, "appendQueryParameter", "account_type", "com.android.exchange");
calendarUri = plus.android.invoke(buildUpon, "build");
plus.android.invoke(plus.android.runtimeMainActivity().getContentResolver(), "insert", calendarUri, value);
mui.toast("添加账号成功");
}