小编tps*_*lva的帖子

离子$ ionicHistory.goBack与不同的$ stateParams

TL; DR

有没有办法使用$ ionicHistory.goBack(-2)更改我要返回的状态的$ stateParams?


我正在使用Ionic开发一个小应用程序,但我面临以下问题:

我有几个状态是整个过程的一部分:productInfo,选择和比较.用户选择产品,然后其信息显示在productInfo状态中.所选产品通过$stateParams.

productInfo状态

$stateProvider.state('productInfo', {
      url: '/compare/info',
      params: {
        product: null
      },
      cache: false,
      views: {
        'main-screen': {
          templateUrl: 'templates/modules/comparator/info.html',
          controller: 'CompareInfoCtrl',
          controllerAs: 'product'
        }
      }
})
Run Code Online (Sandbox Code Playgroud)

在productInfo内部,有一个比较按钮,用户进行选择,并选择另一个产品与第一个产品进行比较.

当用户在选择状态下确认他的选择时,应用程序进入最后状态,即比较,显示两个产品的结果.

在最后一个状态(比较)中,如果用户单击其中一个产品,则应用程序必须返回状态1,productInfo,并选择所单击的产品.

我正在使用$ionicHistory.goBack(-2)而不是$state.go('productInfo')避免弄乱我的后退按钮(每个屏幕都有一个默认按钮,它只是调用$ ionicHistory.goBack()).

问题出现了:我无法更改$stateParamsproductInfo状态,因此显示了最后选择的产品.

理想情况就是这样$ionicHistory.goBack(-2, {product: obj}).

我的最后一枪是:

this.$ionicHistory.viewHistory().views[this.$ionicHistory.backView().backViewId].stateParams.id = this.selectedProduct.id;
this.$ionicHistory.goBack(-2);
Run Code Online (Sandbox Code Playgroud)

但这会创造一个新的历史,因此无法按预期工作.

javascript angularjs angular-ui-router ionic-framework

6
推荐指数
1
解决办法
824
查看次数

检测应用程序的阶段(alpha、beta 或生产)

我正在使用cordova开发一个android应用程序,我希望使用三个给定的阶段来逐步发布它:

  • IT 测试的 Alpha
  • 合作伙伴测试版
  • 为其他人生产

但是,我使用 mixpanel 来跟踪一些用户输入。Mixpanel 需要一个令牌才能工作,我有 2 个,一个用于测试版,另一个用于生产,它mixpanel.init("token1")在应用程序启动时加载。

目前,我构建了一个没有定义令牌的 apk 以在 alpha 中运行,然后我构建了另一个带有 token1 的 apk 以在 beta 中运行,然后又构建了另一个带有 token2 的 apk 以在 prod 中运行。它有效,但很痛苦。

我希望使用promoteGoogle Play Developer Console 中的选项,这样我就可以构建一个单独的 apk(自动化),在需要时升级到 beta/prod 并知道它处于哪个阶段,因此它相应地使用令牌。

是否可以?如果没有,有没有更好的方法让它工作?

TL;DR想知道应用程序在哪个阶段(alpha/beta/prod)运行,因此它相应地使用令牌变量。

android mixpanel google-play cordova

6
推荐指数
1
解决办法
1799
查看次数