<!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>
hml5+ Android創建快捷方式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.