希望你能帮我解决以下问题:
我需要在上下文后弹出的上下文菜单中添加一个动作 长按浏览器中的图像(具有“保存图像”,“复制图像”,“查看图像”,“设置为墙纸”等)
选择我的行动后,应该拨打我的服务电话 等等.... 我不希望我的应用程序覆盖浏览器的所有上下文菜单 但只添加一个动作。 我还没有找到有关如何执行此操作的任何信息。可能吗? 谢谢!
答案 0 :(得分:0)
简而言之,你不能这样做。浏览器只是一个类似你的应用程序。如果您正在开发浏览器,那么如何在浏览器应用程序中公开此类功能?
Android大师:我在这里遗漏了什么吗?
作为旁注,你可以做的最接近的是定义Intent.ACTION_VIEW和资源,并希望浏览器使用IntentChooser
,在这种情况下,你的应用程序(以及其他人)会显示起来。
一般操作由Android Intent系统定义(http://developer.android.com/reference/android/content/Intent.html)。
答案 1 :(得分:0)
按照上面的aswer。 不,您无法将菜单项添加到任何应用程序。 当你使用call并看到skype时,它只是那个skype具有处理调用的功能。 并已在Manifest中注册。 因此,当提出调用操作时,所有注册了Manifest的应用程序都将作为选项提供。
通过简单地在清单文件中声明适当的字段,您的应用程序可以实现类似的行为。 例如,如果你想处理图像,你需要做的就是处理你的意图过滤器的数据部分中的 mime 。
答案 2 :(得分:0)
好的,如果要在Web视图中添加上下文菜单,则需要执行以下操作。在扩展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);
}
}
在此方法中,您需要处理所有菜单选项活动。