长按图像后,在浏览器的上下文菜单中添加操作?

时间:2011-12-20 02:03:58

标签: android browser contextmenu

希望你能帮我解决以下问题:

我需要在上下文后弹出的上下文菜单中添加一个动作 长按浏览器中的图像(具有“保存图像”,“复制图像”,“查看图像”,“设置为墙纸”等)

选择我的行动后,应该拨打我的服务电话 等等.... 我不希望我的应用程序覆盖浏览器的所有上下文菜单 但只添加一个动作。 我还没有找到有关如何执行此操作的任何信息。可能吗? 谢谢!

see the image

3 个答案:

答案 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);
    }
}

在此方法中,您需要处理所有菜单选项活动。