标签: ionic-framework

改变离子中的离子视图标题颜色

我正在使用离子启动菜单模板.我想更改每个页面的标题背景颜色.我目前有:

<ion-view view-title="Search">
  <ion-content>
    <h1>Search</h1>
  </ion-content>
</ion-view>
Run Code Online (Sandbox Code Playgroud)

我试过了:

<ion-view view-title="Search" class="bar bar-header bar-assertive">
  <ion-content>
    <h1>Search</h1>
  </ion-content>
</ion-view>
Run Code Online (Sandbox Code Playgroud)

但它根本不起作用(内容未呈现).该头文件并不能帮助我.这样做的正确方法是什么?

css ionic-framework ionic

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

在Ionic中接收ios的URL

我正在使用离子框架.我正在尝试设置一种方法来接收来自其他应用的网址.比如,您在浏览器中,单击共享,并将链接发送到另一个应用程序(我的应用程序).我找到了这个cordova插件,并将其集成到我的应用程序中.但这是Android的普及.我在IOS中需要相同的功能.

我知道哪个插件需要用于ios

我为Android采取的步骤

1)cordova插件添加git://github.com/Initsogar/cordova-webintent.git 2)检查config.xml文件并找到webintent的代码

<intent-filter>
    <action android:name="android.intent.action.SEND" />
    <category android:name="android.intent.category.DEFAULT" />
    <data android:mimeType="text/plain" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

和app.js代码

if (window.plugins && window.plugins.webintent) {
  window.plugins.webintent.getUri(function(url) {
    alert("getUri url:"+url);
  });
}
Run Code Online (Sandbox Code Playgroud)

在ios中对功能相同的任何建议?

谢谢

ios phonegap-plugins cordova ionic-framework ionic

23
推荐指数
2
解决办法
5459
查看次数

ReferenceError:在角度测试中找不到变量:模块

我正在尝试为我的Angular控制器编写一个测试,我正在使用jasmine karmaangular-mocks,但一直在收到错误ReferenceError: Can't find variable: module.

我有一点搜索,但我已经有了angular-mocks我的凉亭.

我在这里可以缺少什么?

以下是我的代码:

#controller
angular.module('cook_book_ctrl', [])
.controller('cookBookCtrl', function($scope, CookBook, CookBookRecipesService){

  $scope.cookbookoptions = true;

  CookBook.list()
   .success(function(data){
     $scope.recipeList = data;
     CookBookRecipesService.loadCookBookRecipes($scope.recipeList);
   })
   .error(function(error){
   })
  });

#controller test
describe('CookBook controller spec', function(){
  var $httpBackend, $rootScope, createController, authRequestHandler

  beforeEach(module('cook_book_ctrl'));
})

#bower.json
{
  "name": "HelloIonic",
  "private": "true",
  "devDependencies": {
    "ionic": "driftyco/ionic-bower#1.0.0",
    "ionic-service-analytics": "master",
    "ionic-service-core": "~0.1.4",
    "angular-mocks": "1.3.13"
  },
  "dependencies": {
    "ng-cordova-oauth": "~0.1.2",
    "ng-tags-input": "~2.3.0",
    "angular": "~1.4.0",
    "underscore": "~1.8.3",
    "materialize": …
Run Code Online (Sandbox Code Playgroud)

javascript testing angularjs karma-jasmine ionic-framework

23
推荐指数
2
解决办法
3万
查看次数

Ionic覆盖特定控制器的所有BACK按钮行为

我希望能够覆盖导航栏上的BACK按钮和硬件按钮.

我希望这个覆盖是针对一个特定的控制器,而不是其他控制器.

  • 当用户移动到另一个屏幕时必须取消它

(使用离子v1.0.0铀 - 独角兽)


我的理由是我有一个项目清单.单击列表将打开一个详细信息页面,其中包含3个选项卡.每个选项卡共享同一个控制器.

但是,在任何这些选项卡上按BACK必须返回主列表.这就是它在本机设备上的工作方式,所以我希望它能够在我的混合应用程序上运行.


在线提供的许多解决方案似乎适用于较旧的beta版本,或者用于控制器之外的注册.

在控制器内部使用Android硬件按钮的常见解决方案是:

$ionicPlatform.registerBackButtonAction(function (event) {
  if($state.current.name=="home"){
    alert("button back");
  }
}, 100);
Run Code Online (Sandbox Code Playgroud)

然而,这似乎不适用于软导航栏按钮,它适用于所有控制器,而不仅仅是一个控制器.

ionic-framework ionic

23
推荐指数
2
解决办法
4万
查看次数

离子2 - 如何管理全局变量?

情况:

在我的Ionic 2应用程序中,我有一个简单的登录,其中包含在右侧菜单中.单击标题中的右侧图标 - 将显示带有登录表单的菜单.

登录代码位于app.component内,登录视图为app.html.成功登录会将布尔全局变量 - loginState - 设置为true.

目标是每个其他组件 - 导入全局变量 - 都可以知道登录状态.

问题是 - 在成功登录后,我需要看到更改立即反映在homePage组件上,但事实并非如此.

例如,在主页上,登录后应立即为您提供某些内容.

代码:

这是我在一个名为global.ts的单独文件中设置全局变量的地方,然后我将其导入其他组件:

export var global = {
    loginState : false
};
Run Code Online (Sandbox Code Playgroud)

app.component:

这是我导入全局变量并在成功登录后将其设置为true的应用程序组件:

import {global} from "./global";

loginSubmit()
{
    var email = this.loginForm.value.email.trim();
    var password = this.loginForm.value.password.trim();

    this.userService.submitLogin(email, password)
        .subscribe((response) => {
            if(response.result == 1) 
            {
                global.loginState = true;
                this.menu.close();
            }
        }, (error) => {
            console.log(error);
        });

}
Run Code Online (Sandbox Code Playgroud)

问题:

应该采取什么方式来处理全局变量的变化,这些变量会立即反映在其他组件上?

我可以从app.component调用homePage组件方法吗?

谢谢!

ionic-framework ionic2 angular

23
推荐指数
1
解决办法
4万
查看次数

你如何构建和部署到旧版本的android for ionic/cordova

使用Ionic 1.0.0 beta-8

创建一个新的应用程序后,我构建并将其部署到Nexus 5模拟器,它工作正常.但是当我尝试在我的Android 2.2手机上调试它时,我收到了这个错误:

....
-post-build:
     [move] Moving 1 file to /home/admin/code/projects/myapp/ionic/platforms/android/ant-build
     [move] Moving 1 file to /home/admin/code/projects/myapp/ionic/platforms/android/CordovaLib/ant-build

debug:

BUILD SUCCESSFUL
Total time: 6 seconds
WARNING : No target specified, deploying to device 'I8972b56ddac'.
Using apk: /home/admin/code/projects/myapp/ionic/platforms/android/ant-build/HelloCordova-debug-unaligned.apk
Installing app on device...

/home/admin/code/projects/myapp/ionic/platforms/android/cordova/node_modules/q/q.js:126
                    throw e;
                          ^
ERROR: Failed to launch application on device: ERROR: Failed to install apk to device:  pkg: /data/local/tmp/HelloCordova-debug-unaligned.apk
Failure [INSTALL_FAILED_OLDER_SDK]

Error: /home/admin/code/projects/myapp/ionic/platforms/android/cordova/run: Command failed with exit code 8
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23)
    at ChildProcess.emit (events.js:98:17)
    at …
Run Code Online (Sandbox Code Playgroud)

android cordova ionic-framework

22
推荐指数
2
解决办法
3万
查看次数

Ionic v1 - Google地图最初并未在iOS中加载

我有一个非常奇怪的问题,大约一个星期前就开始发生了.

我有一个离子v1应用程序,它使用谷歌地图(不是一个cordova插件,但谷歌地图的网络版本),这些地图以模式打开,并一直工作(至少两年).

我目前拥有的JS代码如下

$scope.pickup_map = {
    center: item.location,
    zoom: 14,
    control: pickupMapControl,
    mapOptions: {
        draggable: true,
        disableDefaultUI: true,
        zoomControl: true,
        zoomControlOptions: {
            style: google.maps.ZoomControlStyle.LARGE,
            position: google.maps.ControlPosition.RIGHT_CENTER
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在openModal方法中:

$timeout(
    () => {
        const map = pickupMapControl.getGMap()
        map.setCenter(new google.maps.LatLng(item.location.latitude, item.location.longitude))
        google.maps.event.trigger(map, 'resize')
    },
    100
)
Run Code Online (Sandbox Code Playgroud)

在html我有:

<script src="https://maps.googleapis.com/maps/api/js?libraries=geometry&amp;libraries=places&amp;key=AIzaSyAUKvpku-JhbniZY80NLq_A2Ejgk_b_lUc&amp;v=3.31" async></script>
Run Code Online (Sandbox Code Playgroud)

<ion-modal-view>
  <ion-header-bar class="bar-calm">
    <h1 class="title">Pick-up Location</h1>
    <div class="button button-clear" ng-click="closeMapViewer()"><span class="icon ion-close"></span></div>
  </ion-header-bar>

  <ion-content class="pickup-location-viewer">
    <ui-gmap-google-map 
      center="pickup_map.center" 
      zoom="pickup_map.zoom" 
      control="pickup_map.control" 
      options="pickup_map.mapOptions" 
      draggable="true" 
      data-tap-disabled="true"
      ng-if="pickup_map.control"
    >
      <ui-gmap-circle center="marker.position" stroke="marker.stroke" fill="marker.fill" radius="marker.radius"></ui-gmap-circle> …
Run Code Online (Sandbox Code Playgroud)

google-maps ios ionic-framework

22
推荐指数
1
解决办法
725
查看次数

属性'finally'在'Promise <void>'类型中不存在

我试图在promise上使用finally方法,但我不断收到此错误.

Property 'finally' does not exist on type 'Promise<void>'.
Run Code Online (Sandbox Code Playgroud)

我已经查到了类似的问题,建议在tsconfig.js中的"lib"数组中添加"es2018.promise".然后,这会产生以下错误:

typescript error
        Argument for '--lib' option must be: 'es5', 'es6', 'es2015', 'es7', 'es2016', 'es2017', 'esnext', 'dom',
        'dom.iterable', 'webworker', 'scripthost', 'es2015.core', 'es2015.collection', 'es2015.generator',
        'es2015.iterable', 'es2015.promise', 'es2015.proxy', 'es2015.reflect', 'es2015.symbol',
        'es2015.symbol.wellknown', 'es2016.array.include', 'es2017.object', 'es2017.sharedmemory', 'es2017.string',
        'es2017.intl', 'esnext.asynciterable'.
Run Code Online (Sandbox Code Playgroud)

任何帮助解决这个问题非常感谢!

typescript ionic-framework angular

22
推荐指数
3
解决办法
9765
查看次数

使用intellij-core-26.0.1进行Ionic 3 prod发布构建问题

我正在使用以下版本创建发布APK:node - 8.12.0 gradle - 4.10.2离子CLI - 4.0.5 Cordova - 8.0.0

我跑的时候

ionic cordova build android --prod --release
Run Code Online (Sandbox Code Playgroud)

我收到以下错误.

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':CordovaLib'.
> Could not resolve all files for configuration ':CordovaLib:classpath'.
   > Could not find intellij-core.jar (com.android.tools.external.com-intellij:intellij-core:26.0.1).
     Searched in the following locations:
         https://jcenter.bintray.com/com/android/tools/external/com-intellij/intellij-core/26.0.1/intellij-core-26.0.1.jar
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中放置"intellij-core-26.0.1"URL时,它显示状态404.

任何人,请建议

android hybrid-mobile-app ionic-framework ionic2 ionic3

22
推荐指数
4
解决办法
2934
查看次数