[js] nativejs 插入日历活动
#
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
<title></title>
<script src="../../js/mui.js"></script>
<link href="../../css/mui.css" rel="stylesheet" />
<script type="text/javascript" charset="utf-8">
mui.init();
</script>
</head>
<body>
<button onclick="addEvent()"> 插入事件</button>
</body>
<script>
var calanderURL = "content://com.android.calendar/calendars";
var calanderEventURL = "content://com.android.calendar/events";
var calanderRemiderURL = "content://com.android.calendar/reminders";
var calId;
var transferHours=22,transferMinutes=23,circleStart=new Date().getTime(),circleEnd;
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 + '');
events.put("eventLocation", "地球-华夏");
var mCalendar = Calendar.getInstance();
//设置提醒时 0-23
plus.android.invoke(mCalendar, "set", Calendar.HOUR_OF_DAY, 0);
//设置提醒分0-59
plus.android.invoke(mCalendar, "set", Calendar.MINUTE, 59);
//循环开始时间
var start = plus.android.invoke(plus.android.invoke(mCalendar, "getTime"), "getTime");
//循环结束时间
var end = plus.android.invoke(plus.android.invoke(mCalendar, "getTime"), "getTime");
console.log(mCalendar);
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("添加账号成功");
}
</script>
</html>
浙公网安备 33010602011771号