红帆
红帆
  • 发布:2015-10-08 11:15
  • 更新:2015-10-08 11:15
  • 阅读:3777

安卓桌面快捷方式传递启动参数

分类:Native.js

应用里需要根据不同的主题在安卓桌面创建快捷方式。快捷方式可以创建成功,并添加了参数。如下:

function createShortcut(){
// 创建快捷方式意图
var shortcut = new Intent("com.android.launcher.action.INSTALL_SHORTCUT");
// 设置快捷方式的名称
shortcut.putExtra(Intent.EXTRA_SHORTCUT_NAME, "贴吧");
// 设置不可重复创建
shortcut.putExtra("duplicate",false);
// 设置快捷方式图标
var iconPath = plus.io.convertLocalFileSystemURL("_www/log.png"); // 将相对路径资源转换成系统绝对路径
var bitmap = BitmapFactory.decodeFile(iconPath);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_ICON,bitmap);
// 设置快捷方式启动执行动作
var action = new Intent(Intent.ACTION_MAIN);
action.putExtra("page_url", "http://www.baidu.com.cn"); // 注意这里添加了一个参数
action.setClassName(main.getPackageName(), 'io.dcloud.PandoraEntry');
shortcut.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
shortcut.putExtra(Intent.EXTRA_SHORTCUT_INTENT,action);
// 广播创建快捷方式
main.sendBroadcast(shortcut);
plus.nativeUI.toast("桌面快捷方式已创建完成!");
}

在应用的启动页index.html里添加代码

mui.plusReady(function(){
var main = plus.android.runtimeMainActivity();
var intent = main.getIntent();
var name = intent.getStringExtra("page_url");
}

在这里获取的name为null。
我也试过 var name = intent.plusCallMethod({getStringExtra:"page_url"}); 获取到的也是空。

请教一下,要怎么做才能获取到这个参数呢?

问题解决了,这样调用就可以了。
var name = plus.android.invoke(intent, "getStringExtra", "page_url");

2015-10-08 11:15 1 条评论 负责人:无 分享
已邀请:

该问题目前已经被锁定, 无法添加新回复