Android 向混合应用程序添加本机功能

Android 向混合应用程序添加本机功能,android,cordova,ionic-framework,cordova-plugins,hybrid-mobile-app,Android,Cordova,Ionic Framework,Cordova Plugins,Hybrid Mobile App,我们有一个爱奥尼亚应用程序,我们想在其中添加一个新的功能在本机。因此,点击应用程序中的一个按钮,将启动一个插件,就像在UI上的普通插件一样。然而,当我想自由地从插件端到Ionic端来回导航时,会出现复杂性 考虑以下情况: 插件打开一个HTML页面,该页面基于用户在爱奥尼亚一侧编写 行动。单击此html页面上的后退将再次返回插件UI 在爱奥尼亚和安卓/iOS端维护后台堆栈,以便顺利进行后台导航 到目前为止,我所做的是使用sendPluginResult方法将不同的代码传递到Ionic端并打开所需的

我们有一个爱奥尼亚应用程序,我们想在其中添加一个新的功能在本机。因此,点击应用程序中的一个按钮,将启动一个插件,就像在UI上的普通插件一样。然而,当我想自由地从插件端到Ionic端来回导航时,会出现复杂性

考虑以下情况:

  • 插件打开一个
    HTML页面
    ,该页面基于用户在爱奥尼亚一侧编写 行动。单击此html页面上的后退将再次返回插件UI
  • 在爱奥尼亚和安卓/iOS端维护
    后台堆栈
    ,以便顺利进行后台导航
  • 到目前为止,我所做的是使用
    sendPluginResult
    方法将不同的代码传递到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);
    
    希望能有帮助