3-3 uniapp、HTML5+、Native.js 功能代码汇总
3-3 uniapp、HTML5+、Native.js 功能代码汇总
本文只适用于 APP
代码汇总
Android平台
监听手机锁屏,解锁,开屏
var receiver;
mui.plusReady(function () {// 获取activitymain = 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") {// WifiManagervar 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()); //获取actionif (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 1024sizes = ['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("添加账号成功");
}
3-3 uniapp、HTML5+、Native.js 功能代码汇总相关推荐
- html5时间表js特效代码
下载地址html5时间表特效代码,基于p5.js实现的动态的时间表效果. dd:
- 七夕静态页面html,html5+CSS3+JS实现七夕言情功能代码
因为今天8月28日就是中国的情人节-七夕,作为程序猿一枚的我就只有在家敲代码咯!但我还是有一颗脱单的心:制作了h5+css+js界面祝小伙伴们:七夕快乐 具体的功能有: 1.下雪的背景动画 2.下面的 ...
- 非常不错的一款html5【404页面】,不含js脚本可以左右摆动,原生JavaScript实现日历功能代码实例(无引用Jq)...
这篇文章主要介绍了原生JavaScript实现日历功能代码实例(无引用Jq),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 成品显示,可左右切换月份 ...
- uni-app中使用native.js调用android API实现双卡发送短信
uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.H5.以及各种小程序(微信/支付宝/百度/头条/QQ/钉钉)等多个平台官网地址 因 ...
- HTML页面打印功能js代码,JavaScript_js实现页面打印功能实例代码(附去页眉页脚功能代码),复制代码 代码如下: html - phpStudy...
js实现页面打印功能实例代码(附去页眉页脚功能代码) 复制代码 代码如下: @media print{ .print {display:block;} .notPrint {display:none; ...
- html5自动生成图片,HTML5拖放API如何实现自动生成相框功能 HTML5拖放API实现自动生成相框功能代码...
HTML5拖放API如何实现自动生成相框功能?下面小编给大家分享一下HTML5拖放API实现自动生成相框功能代码,代码很详细,小编觉得挺不错的,有需要的小伙伴们可以来看看. 实现功能: 将桌面图片拖入 ...
- HTML生日快乐代码 (粉色主题)(HTML5+CSS3+JS)520表白代码/七夕情人节网页/告白/求婚/生日快乐...
html+css+js 生日快乐网站模板(多页面功能版本+音乐)❤520/表白/七夕情人节/求婚❤专用炫酷动画网页的源代码(HTML5+CSS3+JS) 程序员爱情❤520/表白/七夕情人节/求婚❤专 ...
- 使用HTML5和JS实现日期下拉框功能
使用HTML5和JS实现日期下拉框功能 如图所示: 代码如下: <center><span style="font-size:26pt;color:red;"&g ...
- java循环购物车结算系统_原生JS实现购物车结算功能代码
html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD ...
最新文章
- 监控Spark应用方法简介
- 关于rc.local启动程序
- java获取当前tomcat线程pid_java 查看tomcat线程信息(示例代码)
- 浅谈:MyBatis-Plus的CRUD与乐观锁,分页插件,逻辑删除
- 根据数据建立分析模型是什么意思
- Nand Flash VS Nor Flash
- db2数据库免费版限制下载地址
- 仓库管理员怎样做台账_仓库主管岗位职责
- 练习五十一:序列交换
- H.248-Transcoding与Interception
- mysql配置文件 my.ini
- yolo使用webcam
- 西门子mag6000接线_西门子MAG 5000/6000电磁流量计的使用
- 两台电脑串口通信实现文件传输
- C语言-基础入门-学习笔记(13):结构体
- 阳性水草与阴性水草的区分
- 最长可重叠的重复子串(2)
- ADF用户页面行为监控
- 银行软件测试怎么做的
- RK系列开发板音频驱动适配指南(一)