ionic cordova 插件之Android Permissions

作者:猿奇
链接:www.jianshu.com/p/9d8c7b7558d8
來源:
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

这个ionic native 插件是用来支持安卓(Android 26 及以上),新权限检查机制的。

刚问朋友30了还不找女朋友想干啥,他怼道:“是ionic没意思,还是angular不好玩啊,找啥女朋友”,瞬间感觉猿力强大得不行呀,哈哈哈……

不扯犊子了,接着聊代码……

安装和运行

如果没有安装过 Node.js,先去官网下载一下。

// 安装(失败的话 Mac 尝试使用 sudo,Windows 尝试管理员身份运行 cmd)
$ npm install -g cordova ionic

// 创建应用
// cd 到要创建项目的目录,输入以下内容创建ionic项目
// ionic3Test 是项目名,tabs是模板(默认是tabs,其他还有blank的单页等)
$ ionic start ionic3Test tabs

// 安装依赖
// 会生成一个 node_modules 文件夹,并在里面安装 package.json 上写下的文件
$ cd ionic3Demo/
$ npm install

// 在浏览器中运行项目
$ ionic serve

一、安装插件

Ionic Cordova 原生插件之 Android Permissions

//cd 到项目目录 
$ cd ionic3Demo/

$ ionic cordova plugin add cordova-plugin-android-permissions
$ npm install --save @ionic-native/android-permissions

添加插件到--app.module.ts

import { AndroidPermissions } from '@ionic-native/android-permissions';
...
providers: [
    StatusBar,
    SplashScreen,
    {provide: ErrorHandler, useClass: IonicErrorHandler},
    AndroidPermissions
  ]
...

二、应用

添加到--app.component.ts

import { AndroidPermissions } from '@ionic-native/android-permissions';

export class MyApp {
    ...
  constructor(
   ...
    private androidPermissions: AndroidPermissions) {
    platform.ready().then(() => {
   ...

      /*注入权限*/
this.androidPermissions.checkPermission(this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION).then(
        result => {
          console.log('Has permission?',result.hasPermission);
          if (!result.hasPermission){
            alert("没有位置权限需申请权限" + result.hasPermission);
            this.androidPermissions.requestPermissions([this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION])
              .then(result => {//弹出弹框是否允许

                if(result.hasPermission){//点击允许
                 alert("允许使用LOCATION权限");
                }else{//点击拒绝
                  alert("拒绝使用LOCATION权限");
                  //this.platform.exitApp();//退出APP
                }
            });
          }else{
            alert("已允许位置权限" + result.hasPermission);
          }

        },
        err => {
          this.androidPermissions.requestPermission(this.androidPermissions.PERMISSION.ACCESS_COARSE_LOCATION)
        }

      );

    });

  }

}


你可能感兴趣的:(ionic cordova 插件之Android Permissions)