android - 向混合应用程序添加 native 功能

标签 android cordova ionic-framework cordova-plugins hybrid-mobile-app

我们有一个 Ionic 应用程序,我们想在其中添加原生的新功能。因此,单击应用程序中的一个按钮,将启动一个插件,就像在 UI 等上使用它的普通插件一样。然而,当我想在插件端和 Ionic 之间自由来回导航时,问题就来了。

考虑这些场景:

  1. 用于打开基于用户在 Ionic 端编写的 HTML 页面 的插件 行动。点击返回此 html 页面将再次返回插件 UI。
  2. 在 Ionic 和 Android/iOS 端维护后退堆栈,以便后退导航顺利进行。

到目前为止,我所做的是使用 sendPluginResult 方法将不同的代码传递到 Ionic 端并打开所需的页面。实际上,自插件退出以来,它完全破坏了返回堆栈。

点击 Ionic 端的后退按钮,我实际上再次调用插件方法来模拟后退行为。

有没有更好的方法来处理这个问题?有人遇到过类似的问题吗?

最佳答案

希望我正确理解了您的问题。

假设你可以使用一些变量来检查这个插件是否刚刚打开了一个 html 页面,你可以这样做:

$ionicPlatform.registerBackButtonAction(function(event) {

   if(/* check if plugin just opened html-page here */){
     // if condition succeeds, then do not open same html-page again
     event.preventDefault();
     // go two steps backwards to prevent this plugin to open same html-page again
     history.go(-2);
     // update your variable
     // ...
   }

},100);

希望对您有所帮助。

关于android - 向混合应用程序添加 native 功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48138732/

相关文章:

javascript - 如何在 PHONEGAP 中将值从一个 html 页面传递到另一 html 页面?

android - Ionic Serve 工作正常但运行 android 失败

android - 无法将表格迁移到Room do,将 bool 值保存在Sqlite中的方式出错

android - 通过浏览器中的 URL 打开 Android 应用程序

android - Cordova:错误:错误:未设置 ANDROID_HOME 且 "android"命令不在您的路径中。您必须至少满足以下条件之一

android - ionic 3 App 重启而不是恢复

java - 使用 Android App 在 Raspberry Pi 上执行 SSH 命令

android - FloatingActionButton 没有边框?

javascript - 从 PhotoLibrary 中选取图像不起作用 - Ionic 4

ionic-framework - 实时重新加载不适用于Ionic服务命令