hml5+ Android創建快捷方式

<!DOCTYPE HTML>
<html>

	<head>
		<meta charset="utf-8" />
		<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
		<meta name="HandheldFriendly" content="true" />
		<meta name="MobileOptimized" content="320" />
		<title>Hello H5+</title>

		<script type="text/javascript">
			/*
 * 		首先是供參考對比的Android源代碼,用Android的java代碼創建手機桌面快捷方式
 * 
	import android.content.Intent;
	import android.graphics.BitmapFactory;
	import android.graphics.Bitmap;
	import android.app.Activity;

	// 獲取主Activity
	Activity main = this;
	// 創建快捷方式意圖
	Intent shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
	// 設置快捷方式的名稱
	shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, "HelloH5+");
	// 設置不可重複創建
	shortcut.putExtra("duplicate",false);
	// 設置快捷方式圖標
	Bitmap bitmap = BitmapFactory.decodeFile("/sdcard/icon.png");
	shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap);
	// 設置快捷方式啓動執行動作
	Intent action = new Intent(Intent.ACTION_MAIN);
	action.setComponent( main.getComponentName() );
	shortcut.putExtra( Intent.EXTRA_SHORTCUT_INTENT, action );
	// 廣播創建快捷方式
	context.sendBroadcast(shortcut);
*/
			/*
			 * 如下開始是HTML5plus的js代碼,演示如何通過js橋技術調用Android的原生api,從而完成手機桌面快捷方式創建。
			 */
			var Intent = null,
				BitmapFactory = null;
			var main = null;
			// H5 plus事件處理
			function plusReady() {
				if (plus.os.name == "Android") {
					// 導入要用到的類對象
					Intent = plus.android.importClass("android.content.Intent");
					BitmapFactory = plus.android.importClass("android.graphics.BitmapFactory");
					// 獲取主Activity
					main = plus.android.runtimeMainActivity();
				}
			}
			if (window.plus) {
				plusReady();
			} else {
				document.addEventListener("plusready", plusReady, false);
			}
			// DOMContentLoaded事件處理
			var _domReady = false;
			document.addEventListener("DOMContentLoaded", function () {
				eStart = document.getElementById("start");
			}, false);
			/**
			 * 創建桌面快捷方式
			 */
			function createShortcut() {
				// 創建快捷方式意圖
				var shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
				// 設置快捷方式的名稱
				shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, "HelloH5+");
				// 設置不可重複創建
				shortcut.putExtra("duplicate", false);
				// 設置快捷方式圖標
				var iconPath = plus.io.convertLocalFileSystemURL("_www/icon.png"); // 將相對路徑資源轉換成系統絕對路徑
				var bitmap = BitmapFactory.decodeFile(iconPath);
				shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON, bitmap);
				// 設置快捷方式啓動執行動作
				var action = new Intent(Intent.ACTION_MAIN);
				//action.setComponent(main.getComponentName());
				action.setClassName(main.getPackageName(), 'io.dcloud.PandoraEntry');
				shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, action);
				// 廣播創建快捷方式
				main.sendBroadcast(shortcut);
				console.log("桌面快捷方式已創建完成!");
			}

			/*
			 * 		供參考對比的Android源代碼,用Android的java代碼刪除手機桌面快捷方式
			 * 
			 * 		// 獲取主Activity
			 * 		Activity main = this;
			 * 		// 創建快捷方式意圖
			 * 		Intent shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT");
			 * 		// 設置快捷方式的名稱
			 * 		shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME,"HelloH5+");
			 * 		// 設置快捷方式啓動執行動作
			 * 		Intent action = new Intent(Intent.ACTION_MAIN);
			 * 		action.setComponent(main.getComponentName());
			 * 		shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,action);
			 * 		// 廣播刪除快捷方式
			 * 		main.sendBroadcast(shortcut);
			 */
			/*
			 * 刪除桌面快捷方式
			 */
			function deleteShortcut() {
				// 創建快捷方式意圖
				var shortcut = new Intent("com.android.launcher.action.UNINSTALL_SHORTCUT");
				// 設置快捷方式的名稱
				shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, "HelloH5+");
				// 設置快捷方式啓動執行動作
				var action = new Intent(Intent.ACTION_MAIN);
				//action.setComponent(main.getComponentName());
				action.setClassName(main.getPackageName(), 'io.dcloud.PandoraEntry');
				shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT, action);
				// 廣播創建快捷方式
				main.sendBroadcast(shortcut);
				console.log("桌面快捷方式已刪除!");
			}

		</script>

		<style type="text/css">

		</style>
	</head>

	<body>
		<header id="header">
			<div class="nvbt iback" onclick="back();"></div>
			<div class="nvtt">Shortcut</div>
		</header>
		<div id="dcontent" class="dcontent">
			<br />
			<div class="button" onclick="createShortcut()">創建桌面快捷方式</div>
			<div class="button" onclick="deleteShortcut()">刪除桌面快捷方式</div>
			<br />
			<br />
			<p class="des">
				快捷方式操作是通過向Android系統發送廣播的方式來實現,可能在一些定製的ROM上沒有實現此類廣播的處理,導致無法創建桌面快捷方式。
			</p>
			<br />
		</div>
		<div id="output">
			Native.JS for Android,可通過plus.android.*調用幾乎所有的系統API。
		</div>
	</body>

</html>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章