【问题标题】:What is the name of this on app development?应用程序开发中的这个名称是什么?
【发布时间】:2019-11-13 08:12:56
【问题描述】:

我们正在为客户开发一个应用程序,他需要一些与 iOS 上的 iTranslate 应用程序提供的类似功能(见附图)。

使用此功能,当您在任何其他应用程序中(例如阅读 Medium 应用程序上的任何内容)并选择一个单词时,会出现一个菜单,您可以选择使用我的客户端的应用程序打开该单词。但不是打开整个应用程序并关闭正在使用的应用程序,而是出现一种弹出窗口:

我对此有几个问题: - 这个有名字吗? - 可以使用 Ionic 完成类似的操作,还是需要在 Native 中编写应用程序? - 这是否仅适用于 iOS 或 Android?

我对这个问题真的很迷茫,希望得到一些指导。 谢谢

【问题讨论】:

  • 有趣的想法/话题...
  • 这看起来像旧的上下文菜单。
  • 我认为这是一个小部件。安卓:developer.android.com/guide/topics/appwidgets | iOS:developer.apple.com/design/human-interface-guidelines/ios/… 这可以在 ionic 中完成吗?这是我正在寻找的小部件吗?
  • "这个有名字吗?" – 文本处理,也许吧?至少,相关的Intent 操作是PROCESS_TEXT。 “这样的事情可以用 Ionic 完成,还是你需要用 Native 编写应用程序?” - 不知道。它绝对可以是原生的。 “这只能在 iOS 上还是在 Android 上可行?” – 自 Marshmallow(API 级别 23)以来,它已在 Android 中可用。它只需要在您的一个活动上使用特定的<intent-filter>,您可以将其设置为对话框的样式以获取图像的外观。 this answer 中有一些信息。这很容易做到。
  • 这几乎看起来像 android 的弹出菜单。定制也很容易,它可以固定在窗口的任何位置。

标签: android ios ionic-framework


【解决方案1】:

根据 Android 开发者网站,第一张图片中的示例将被称为“Floating Context Menu”。第二张图片中的示例将被称为“Popup Menu”。

希望这会有所帮助!祝你好运!

【讨论】:

    【解决方案2】:

    您可以为此使用文本选择工具栏 https://material.io/design/platform-guidance/android-text-selection-toolbar.html#,其中was added in Android 6.0。请注意,您只能在 Android 6.0 及更高版本上使用此功能。

    这里有一篇不错的文章,它提供了一些关于如何创建它的示例:

    https://medium.com/androiddevelopers/custom-text-selection-actions-with-action-process-text-191f792d2999

    从文章来看,基本实现如下:

    AndroidManifest.xml

    <activity
        android:name=".ProcessTextActivity"
        android:label="@string/process_text_action_name">
      <intent-filter>
        <action android:name="android.intent.action.PROCESS_TEXT" />
        <category android:name="android.intent.category.DEFAULT" />
        <data android:mimeType="text/plain" />
      </intent-filter>
    </activity>
    

    ProcessTextActivity.java

    @Override
    protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.process_text_main);
      CharSequence text = getIntent()
          .getCharSequenceExtra(Intent.EXTRA_PROCESS_TEXT);
    
      // process the text
    
      Intent intent = new Intent();
      intent.putExtra(Intent.EXTRA_PROCESS_TEXT, result);
      setResult(RESULT_OK, intent);
    }
    

    所以,我很确定您可以在 ionic 中实现这一点。我从来没有用 ionic 写过任何东西,但你也许可以从中调用类似 Java 代码的东西。

    【讨论】:

      【解决方案3】:

      这是一个定制的PopupWindow(Android 文档),用PopoverController(标志性文档)之类的东西不应该是一个主要问题。

      您将面临的真正问题是文本选择。您可以查看此stackoverflow link 以获取指针。

      像这样的解决方案可能在一个或另一个平台上工作,除非在图标中有用于文本选择的 API。

      如果 icon 没有为您提供 API,您将不得不卷起袖子。此时,您正处于一个滑坡上,正在查看 web 视图。

      更新:

      上述所有的杂耍都需要在您的应用中实现此。 Android 和 iOS 不允许您将项目添加到系统上下文菜单中,就像您在基于 PC(Windows/MacOS/...)的操作系统中看到的那样。

      如果您在 Android 中查看 Google 翻译应用程序。它监听剪贴板复制事件并在其他应用程序上弹出一个临时图标。在 iOS 中绘制在其他应用程序上的是 not possible

      因此,如果您希望自己的功能显示在 Medium App 中,那么他们必须添加 UI,并且他们必须调用您的“API”。

      【讨论】:

      • PopoverController 仅适用于 Ionic 应用程序。我想让它在描述的其他应用程序中也能正常工作
      • @asanchez,您可以在 Android 中使用本机实现,但在 iOS 中无法做到这一点
      猜你喜欢
      • 1970-01-01
      • 2011-12-05
      • 1970-01-01
      • 2014-06-16
      • 2014-02-24
      • 2014-10-03
      • 2016-04-18
      • 2015-09-22
      相关资源
      最近更新 更多