【问题标题】:Implement App Tracking Transparency for Ionic 4 Angular and Cordova based iOS app为基于 Ionic 4 Angular 和 Cordova 的 iOS 应用程序实现应用程序跟踪透明度
【发布时间】:2021-07-25 05:34:44
【问题描述】:

我的应用更新已被苹果拒绝,因为它需要应用跟踪透明度,我在我的 ios info.plist 文件中添加了以下行

<key>NSUserTrackingUsageDescription</key>
<string>Your data will be used to connect external sites to allow you to log-in and track your orders using your email.</string>

我试过这个插件https://github.com/chemerisuk/cordova-plugin-idfa

getInfo(){
    return this.platform
      .ready()
      .then(() => cordova.plugins.idfa.getInfo())
  }

但是当我运行 ionic cordova build iOS 时它显示错误。 错误是:cannot find idfa property in cordova.plugins

是否有任何官方 ionic cordova 插件来实现应用跟踪透明度? 或者有人有为此目的的定制解决方案吗? 请帮忙。

【问题讨论】:

    标签: ios cordova ionic-framework


    【解决方案1】:

    我在博客上找到了解决方案

    首先,将其添加到位于platforms/ios/appname/appname-Info.plist 的appname-Info.plist 文件中

    <key>NSUserTrackingUsageDescription</key>
    <string>Your Description</string>
    

    现在安装 Cordova 插件

    cordova 插件添加 cordova-plugin-idfa

    npm i cordova-plugin-idfa --save

    然后将以下内容添加到 app.component

    askTrackingPermission() {
          if (this.platform.is('ios')) {
            if (window.cordova) {
              //console.log('trying to request permission ');
              window.cordova.exec(win, fail, 'idfa', "requestPermission", []);
            }
          }
          function win(res) {
            //console.log('success ' + JSON.stringify(res));
          }
          function fail(res) {
            //console.log('fail ' + JSON.stringify(res));
          }
      }
     
    readTrackingPermission() {
        if (this.platform.is('ios')) {
          if (window.cordova) {
            window.cordova.exec(win, fail, 'idfa', "getInfo", []);
          }
        }
        function win(res) {
          //console.log('success  ' + JSON.stringify(res));
        }
        function fail(res) {
          //console.log('fail ' + JSON.stringify(res));
        }
      }
    

    别忘了声明如下窗口

    声明让窗口:任意; 导入后

    最后一次调用 initializeApp 函数

    initializeApp() {
    this.platform.ready().then(() => {
    if (this.platform.is('ios')) {
    this.askTrackingPermission();
    this.readTrackingPermission();
    }
    });
    }
    

    【讨论】:

      猜你喜欢
      • 2021-11-23
      • 2021-11-20
      • 1970-01-01
      • 1970-01-01
      • 2022-07-15
      • 1970-01-01
      • 2021-07-06
      • 2018-01-16
      相关资源
      最近更新 更多