希望你能帮助我有以下:长按图片后在浏览器的上下文菜单上添加操作?
我需要补充的是,在浏览器中的图像的 长按(即具有“保存图像”一前一后弹出上下文菜单中的动作,“复制图像”,‘查看图像’,‘设置为墙纸’等)
如选择我的行动的结果应该叫我的服务和 等.... 我不希望我的应用程序覆盖浏览器的所有上下文菜单 ,但仅向其添加操作。 我还没有找到任何有关如何做到这一点的信息。可能吗? 谢谢!
希望你能帮助我有以下:长按图片后在浏览器的上下文菜单上添加操作?
我需要补充的是,在浏览器中的图像的 长按(即具有“保存图像”一前一后弹出上下文菜单中的动作,“复制图像”,‘查看图像’,‘设置为墙纸’等)
如选择我的行动的结果应该叫我的服务和 等.... 我不希望我的应用程序覆盖浏览器的所有上下文菜单 ,但仅向其添加操作。 我还没有找到任何有关如何做到这一点的信息。可能吗? 谢谢!
总之,你不能做到这一点。浏览器就像你的应用程序一样。如果您正在开发浏览器,您将如何在浏览器应用程序中公开此类功能?
Android大师:我在这里丢失什么?
作为一个便笺,最接近你可以做的是定义Intent.ACTION_VIEW和资源,并希望浏览器使用IntentChooser
,在这种情况下,你的应用程序(以及其他)将显示出来。
一般操作由Android Intent系统(http://developer.android.com/reference/android/content/Intent.html)定义。
按照上面的aswer。不,您不能将菜单项添加到任何应用程序。 当你使用呼叫和看到Skype,它只是该Skype具有处理呼叫的能力。 并已在清单中注册。 因此,当提出呼叫操作时,所有注册了清单的应用程序将作为选项提供。
类似的行为可以通过简单地在清单文件中声明适当的字段来实现。 例如,如果要处理图像,您只需在意图过滤器的数据部分中处理mime。
好的,如果你想添加一个上下文菜单到网页视图,你将需要执行以下操作。在主应用程序类,它扩展DroidGap你将需要添加下面一行到onCreate方法:
this.registerForContextMenu(this.appView);
,那么你就需要将以下两个方法添加到同一个Java类:
@Override
public void onCreateContextMenu(ContextMenu menu, View v,
ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.example, menu);
}
当然,您需要将R.menu.example更新为菜单的XML文件的名称。
@Override
public boolean onContextItemSelected(MenuItem item) {
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();
switch (item.getItemId()) {
case R.id.settings:
this.startActivity(new Intent(android.provider.Settings.ACTION_SETTINGS));
return true;
case R.id.help:
this.appView.sendJavascript("navigator.notification.alert('No help')");
return true;
default:
return super.onContextItemSelected(item);
}
}
在这种方法中,您需要处理所有的菜单选项活动。
我同意你的看法,但有一件事情可以拨打应用程序。当您安装Skype时,如果您尝试拨打号码,或者如果您从联系人列表中选择,它会询问您是否要通过Skype或拨号程序拨打电话。它不是同一个机制?我不确定。 – akd 2011-12-20 02:20:42
这些可以使用Intent解析机制完成。Skype会实施类似ACTION_PICK的事情。 ACTION_NEW_OUTGOING_CALL也看起来似乎合理(也很有趣!) – 2011-12-20 02:23:36