小编Dan*_*own的帖子

恢复已经在iPhone上购买了应用内购买?

我到目前为止:重新安装后,用户需要点击"购买功能",然后他会被0.99美元的问题吓到,然后必须登录然后才被告知该功能已经购买并且他免费获得.

我知道苹果是一种宗教,用户是坚定的信徒,但是不是更好的方式吗?:-)我想要的是检查功能而不实际购买它.让用户输入他的帐户信息似乎是必要的,也许买一个0.00美元的功能?或者有某种方法可以做到这一点吗?

我正在使用MKStoreKit进行整个In-App-Purchase,但任何解决方案都会很棒.


UPDATE

thanx到darvids0n,你的方法解决了我的问题!这是其他人尝试相同的工作代码:

- (void)removePreviousPurchases { //just for sandbox testing
    [[MKStoreManager sharedManager] removeAllKeychainData];
}

- (void)restorePreviousPurchases { //needs account info to be entered
    if([SKPaymentQueue canMakePayments]) {
        [[MKStoreManager sharedManager] restorePreviousTransactionsOnComplete:^(void) {
             NSLog(@"Restored.");
             /* update views, etc. */
        }
        onError:^(NSError *error) {
            NSLog(@"Restore failed: %@", [error localizedDescription]);
            /* update views, etc. */
        }];
    }
    else
    {
        NSLog(@"Parental control enabled");
        /* show parental control warning */
    }
}
Run Code Online (Sandbox Code Playgroud)

restore in-app-purchase ios

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

如何与多个UIScrollViews同步滚动?

我有2个UIScrollViews每个显示一个图像(概述和缩放模式).我可以单独滚动两个视图,现在我想保持两个视图的中心点同步.

我猜当其中一个视图正在创建事件时,我需要将它们转发到另一个视图,只是无法找出哪些函数是相关的.任何提示?

编辑:如果无法进行并行实时滚动,我想至少在滚动事件后同步.

uiscrollview ios

8
推荐指数
1
解决办法
6779
查看次数

如何在android中的开关上显示进程状态?

在材料设计指南中有一个名为“显示处理状态”的部分,我们在其中看到了一个开关的视频,拇指上有一个进度指示器。

https://material.io/design/components/selection-controls.html#switches

因为开关显示某物的实际状态,所以有时它的状态变化会有延迟。在这种情况下,可以使用处理状态动画。

处理状态是开关拇指上的动画。例如,当控制硬件功能的开关在确认其最终状态之前遇到延迟时,可以使用它。

我怎样才能达到这样的效果?那是普通 CompatSwitch 的一部分吗?有图书馆可以做到这一点吗?

android switchcompat

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

如何在没有服务器的情况下编写最小的 Slack 脚本?

我加入了一个 Slack 团队,现在我想和那里的机器人一起玩。但是似乎有很多不同的方式,它们都涉及一些带有 API 的服务器。

是否有一种简单的方法可以为最终用户编写脚本(是机器人)吗?我写了一个文件,将它加载到 slack 应用程序中,它可以工作吗?

我的第一个想法(只是为了尝试一下)是从我自己的帐户中自动响应某些关键字。

slack-api slack

3
推荐指数
1
解决办法
1794
查看次数

Android为印度尼西亚生成错误的语言代码?

这发生在我们在印度尼西亚拥有的所有设备上。

国家/地区代码正确,显示语言和 ISO3 似乎也正确:

Locale.getDefault().getISO3Country()     // "IDN"
Locale.getDefault().getDisplayCountry()  // "Indonesia"
Locale.getDefault().getCountry()         // "ID"
Locale.getDefault().getISO3Language()    // "ind"
Locale.getDefault().getDisplayLanguage() // "Bahasa Indonesia"
Run Code Online (Sandbox Code Playgroud)

但是正常的语言代码是错误的,应该是“id”而不是“in”。然后android也生成了错误的language_COUNTRY标识符,应该是“id_ID”而不是“in_ID”

Locale.getDefault().getLanguage()        // "in"
Locale.getDefault().toString()           // "in_ID"
Run Code Online (Sandbox Code Playgroud)

这是一个已知问题吗?我们对于它可以做些什么呢?

氰化物建议只覆盖语言环境,但是那些真正需要使用“in”而不是“id”的设备呢,那对他们来说是错误的呢?

android internationalization

3
推荐指数
1
解决办法
1875
查看次数