如果设备被root或jail断开,如何限制Ionic 2应用程序安装?

时间:2018-02-07 05:43:26

标签: angular cordova ionic2

我有一个离子2和角度2应用程序。我试过了 cordova插件添加cordova-plugin-iroot --save和cordova插件添加cordova-plugin-root-detection --save。他们都没有为我工作..两个插件都有类似的实现

IRoot.isRooted(successCallback,failureCallback); srootdetection.isDeviceRooted(successCallback,errorCallback);

分别..在这里,我无法导入" IRoot和srootdetection"来自npmmodules的类。

如果有任何方法可以限制应用安装,请分享您的回复。

提前致谢。 PIYUSH

2 个答案:

答案 0 :(得分:2)

参考此工作代码:

RootDetection:仅限Android

安装插件            cordova插件添加cordova-plugin-root-detection

然后在 app.component.ts

中编写这些代码
      declare var rootdetection:any;

      platform.ready().then(() => {
      if (typeof(rootdetection) !== 'undefined' && rootdetection) {
                rootdetection.isDeviceRooted((data) => {
                    if (data && data == 1) {
                        console.log("This is routed device");

                    } else {
                        console.log("This is not routed device");
                    }
                }, (data) => {
                    console.log("routed device detection failed case", data);
                });
            }
        });

iRoot插件:Android&的iOS

安装插件            cordova插件添加cordova-plugin-iroot

然后在 app.component.ts

中编写这些代码
  declare var IRoot:any;

  if (typeof (IRoot) !== 'undefined' && IRoot) {
            IRoot.isRooted((data) => {
                if (data && data == 1) {
                    console.log("This is routed device");
                } else {
                    console.log("This is not routed device");
                }
            }, (data) => {
                    console.log("routed device detection failed case", data);
                });
        }

答案 1 :(得分:1)

IRoot插件相关,它可以检查设备是否已扎根(Android情况)或越狱(Ios情况)。

步骤:

  1. 使用命令导入cordova-plugin-iroot
    cordova plugin add cordova-plugin-iroot --save

  2. 在类文件的顶部将IRoot声明为var
    declare var IRoot: any;

  3. 确保在设备准备就绪时使用检查的核心代码

  4. 返回的数据结果应为布尔型NOT号
    所以你需要检查'true'不是'1'

最终脚本

platform.ready().then(() => {
    IRoot.isRooted(
        (data) => {
          console.log('rooted device detection success case ' +  data);

          // check data value against true NOT 1
          if (data && data === true) {
            console.log('This is rooted device');
            // ... do anything when device is rooted

          } else {
            console.log('This is not rooted device');

          }
        },
        (data) => {
          console.log('rooted device detection failed case ' +  data);

        }
  );
});