我想将venmo库集成到iOS应用程序中。
我按照venmo github project创建了它的演示。
根据github项目的描述,下面是在浏览器中显示venmo app / open venmo的代码:
- (IBAction)payButtonPressed:(UIButton *)sender
{
// App crashes here. Does not crash if I comment this line.
venmoClient = [VenmoClient clientWithAppId:AppId secret:AppSecret];
VenmoTransaction *venmoTransaction = [[VenmoTransaction alloc] init];
venmoTransaction.type = VenmoTransactionTypePay;
venmoTransaction.amount = [NSDecimalNumber decimalNumberWithString:@"5"];
venmoTransaction.note = @"Payment for something";
venmoTransaction.toUserHandle = @"Name";
VenmoViewController *venmoViewController = [venmoClient viewControllerWithTransaction:
venmoTransaction];
if (venmoViewController) {
[self presentViewController:venmoViewController animated:YES completion:nil];
}
}
当我运行项目时,它会在方法的第一行崩溃。如果我发表评论,那就不会崩溃。
以下是它抛出的错误消息:
由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:' - [NSBundle名称]:无法识别的选择器发送到实例0x17556e00'
有人用过venmo吗?
更新:我从venmo-ios-sdk下载了项目。打开示例项目并尝试运行。但它甚至没有编译。
然后我尝试通过添加venmo ios sdk来创建一个新的演示。根据gihub自述文件,我必须添加
pod'venmo-ios-sdk',:git => 'https://github.com/venmo/venmo-ios-sdk'
到Podfile。但它会引发错误:
[!]给定podspec
不匹配Venmo-iOS-SDK
的名称与预期的venmo-ios-sdk
然后我尝试添加
pod'Venmo-iOS-SDK',:git => 'https://github.com/venmo/venmo-ios-sdk'
允许安装。
现在,根据教程,有两种方式可以发送付款。
Transaction failed with error: The current session is not open.
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Venmo handleOpenURL:]: unrecognized selector sent to instance 0x8e8a410'
。这很清楚,因为在Venmo.m文件中没有实现这样的方法。但它在Venmo.h文件中声明。答案 0 :(得分:1)
Venmo的iOS工程师 - 我们实际上正在发布新的Venmo iOS SDK,您现在可以开始使用它了!
pod 'Venmo-iOS-SDK', :git => 'https://github.com/venmo/venmo-ios-sdk'
我为这种困惑道歉。我们会立即将您正在使用的框架标记为已弃用,并将人们指向新的SDK。
如果您在整合新sdk时遇到任何问题,请submit an issue!
<强>更新强>
对不起您遇到的所有集成问题!在我们正式发布之前,我们仍在处理文档,您的反馈非常有用。你应该charge me on Venmo!
我使用正确的Podfile行更新了文档,handleOpenURL:
不再遗漏Venmo.m
。我还更新了README,以阐明如何使用不同的事务方法。希望通过本教程可以获得更好的体验 - 抱歉,您最终成为了我们的豚鼠!
如果您对SDK有任何疑问,请告诉我们!
答案 1 :(得分:0)
这里的派对可能有点晚了,但我注意到了:
venmoTransaction.amount = [NSDecimalNumber decimalNumberWithString:@"5"];
我知道你看看他们需要的类型为float的文档。
我明白了使用Decimal,但是尝试将它投射到浮点数或使用类似的东西:
NSDecimalNumber *someDecimalNumber = [NSDecimalNumber decimalNumberWithString:@"5"]
//then in the venmo piece
venmoTransaction.amount = [self.someDecimalNumber floatvalue];
如果有帮助,请告诉我