Приложение Ionic View $state.go и ui-sref не работают

У меня проблема, когда я пытаюсь изменить представление в приложении ionic view для IO'S (я не подтверждаю приложение для Android). Я вижу, что это ошибка приложения, и у нее есть решение, но это не работает для меня.

информационная ошибка: https://blog.appery.io/2015/09/how-to-fix-ios9-angular-webview-issue/ информация об ошибке 2: http://blog.ionic.io/ios-9-potential-breaking-change/

Моя ионная информация:

Cordova CLI: 5.3.3
Ionic Version: 1.1.0
Ionic CLI Version: 1.7.7
Ionic App Lib Version: 0.6.3
ios-deploy version: 1.8.2 
ios-sim version: 5.0.2 
OS: Mac OS X El Capitan
Node Version: v4.1.1
Xcode version: Xcode 7.0.1 Build version 7A1001

и мой app.js:

$stateProvider

      .state('landing', {
        url: '/',
        templateUrl: 'templates/landing/landingView.html',
        controller: 'landingController'
      })
      .state('login', {
        url: '/login',
        templateUrl: 'templates/landing/login/loginView.html',
        controller: 'loginController'
      })
      .state('register', {
        url: '/register',
        templateUrl: 'templates/landing/register/registerView.html',
        controller: 'registerController'
      })
      .state('forget', {
        url: '/forget',
        templateUrl: 'templates/landing/forget/forgetView.html',
        controller: 'forgetController'
      })
      .state('index', {
        abstract: true,
        //url: '/',
        views: {
          '@' : {
            templateUrl: 'templates/abstractView.html',
            controller: 'AppCtrl'
          },
          'sideNavMenu@index': {
            templateUrl: 'templates/modules/sideBar/sideNavBar.html',
            controller: 'sideNavController'
          },
          'footerMenu@index': {  //tabs views
            templateUrl: 'templates/modules/footerMenu/footerMenu.html',
            controller: 'footerMenuController'
          }
        }
      })
      .state('tab1', {
        parent: 'index',
        abstract:true,
        url: '/tab1',
        views: {
          'tab1View@index': {
            templateUrl: 'templates/tab1/tttt.html',
            controller: 'tabs1Controller'
          }
        }
      })
      .state('tab2',{
          parent: 'tab1',
          url: '/tab2',
          views:{
              'tab2View@index': {
                  templateUrl: 'templates/tab2/tttt.html',
                  controller: 'tab2Controller'
              }
          }
      })
      .state('tab3',{
          parent: 'tab1',
          url: '/tab3',
          views:{
              'tab3View@index': {
                  templateUrl: 'templates/tab3/tttt.html',
                  controller: 'tab3Controller'
              }
          }
      })
      .state('tab4',{
          parent: 'tab1',
          url: '/tab4',
          views:{
              'tab4View@index': {
                  templateUrl: 'templates/tab4/rrr.html',
                  controller: 'tab4Controller'
              }
          }
      })

      .state('subtabs', { //tabs inside tabs
        parent: 'tab1',
        abstract:true,
        url: '/subtabs'
      })
      .state('subtabs.subtab1',{
        parent: 'subtabs',
        url: '/subtab1',
        views: {
          'subtab1@mobile': {
            templateUrl: 'templates/subtab/tab1/tab1.html',
            controller: 'subtab1Controller'
          }
        }
      })
      .state('subtabs.subtab2',{
        url: '/subtab2',
        views: {
          '[email protected]':{
            templateUrl: 'templates/subtab2/subtabs21/ssss.html',
            controller: 'subtab21Controller'
          },
          'etc1etc2@mobile': {
            templateUrl: 'templates/subtab2/subtabs22/ddddd.html',
            controller: 'subtab22Controller'
          }

        }
      })
      .state('subtabs.subtab3',{
        parent: 'subtabs',
        url: '/subtab3',
        views: {
          'etcetc3@mobile': {
            templateUrl: 'templates/subtab/subtabs3/asdasd.html',
            controller: 'subtab3Controller'
          }
        }
      })

Очевидно, что имена и каталоги являются подделками... это состояние с реальными именами работает для меня, я хочу только объяснить идею.

У меня есть одна посадка с: входом, регистрацией и т. д., и когда я передаю это представление после перехода на страницу индекса и т. д., эта страница индекса представляет собой абстрактное представление с вкладками (4 вкладки), и на одной вкладке у меня есть вкладки внутри очередной раз.

Я отображаю вкладки с подвидами для модуля. Моя проблема в том, что в браузере и моделировании отладки Xcode и т. д. это работает... но в приложении ионного просмотра это не работает. (Я пробую патч, и он вообще не работает). Я доказываю это с помощью href, ui-sref, state.go()... и ничего. мне нужна помощь пожалуйста

Спасибо!! знак равно


person abdijar    schedule 22.10.2015    source источник


Ответы (1)


Были похожие проблемы. И что я рекомендую делать:

  1. Примените патч: https://gist.github.com/IgorMinar/863acd413e3925bf282c Просто поместите его в свой каталог проекта, добавьте <script src=...> в index.html в вашем ионном проекте и зависимость в app.js, например: angular.module('myApp', ['ngRoute', 'ngIOS9UIWebViewPatch'])
  2. Загрузите и замените последнюю версию angular (https://code.angularjs.org/1.4.7/ ) в [ваш ионный проект]/www/lib/js/angular
    Файлы: angular-animate.js, angular-sanitize.js, angular.js
  3. Включите их вместо ionic-bundle.js, чтобы заголовок index.html выглядел так:

    <script src="lib/ionic/js/ionic.js"></script>
    <script src="lib/ionic/js/ionic-angular.js"></script>
    
    <script src="lib/ionic/js/angular-ui/angular-ui-router.js"></script>
    
    <script src="angular-ios9-uiwebview.patch.js"></script>
    <!-- cordova script (this will be a 404 during development) -->
    <script src="cordova.js"></script>
    
  4. Обновите XCode до версии 7.1.

  5. Откройте проект [имя вашего проекта].xcodeproj в папке [ваш проект ionic]/platforms/ios. XCode предложит исправить несколько предупреждений, сделайте это на всякий случай.
  6. Скомпилируйте и запустите проект из XCode

После всех этих шагов мой проект начал работать

person Федор Усаков    schedule 30.10.2015