8 payment cancel-button ios swift
我想用paysbuySDK 实现支付功能....问题是它没有任何cancel选项,以便用户可以在支付成功后取消关闭操作.
默认情况下,SDK提供了一种方法,可以打开WebView覆盖整个屏幕部分的默认值cancel.并且没有任何选项..
我只是想cancel通过在特定的view.. viewcontroller或者加载付款来添加一个按钮.. 我尝试在container视图中使用...加载视图内部的container视图和视图cancel外的按钮container,但是当我尝试这个过程时,它显示为全屏默认WebView.也尝试创建PopUP但未成功
那么,如何可以加载webview的SDK我的一个特定部分view,这样我可以把一个Cancel按钮?
这是sdk提供的启动服务的方法
- (void) callServiceWithCurrentView :(UIViewController *) currentViewController
invoice:(NSString *)invoice
item:(NSString *)item
amount:(NSString *)amount
paypal_amount:(NSString *)paypal_amount
transferMethod:(NSString *)transferMethod
customerLanguage:(NSString *)customerLanguage
operator_name:(NSString *)operator_name
operator_email:(NSString *)operator_email
operator_mobile:(NSString *)operator_mobile
operator_address:(NSString *)operator_address
operator_detail:(NSString *)operator_detail;
Run Code Online (Sandbox Code Playgroud)
在这里我们可以看到该callServiceWithCurrentView方法显示目标, currentviewcontroller所以我认为它默认加载full screen模式viewcontroller....
这是我在swift中实现的方式
paysBuy?.callServiceWithCurrentView(self, invoice: "343434343", item: "App Fee", amount: "10", paypal_amount: "1", transferMethod: "1", customerLanguage: "E", operator_name: "PAYSBUY", operator_email: "abc@paysbuy.com", operator_mobile: "0888888888", operator_address: "PAYSBUY.COM", operator_detail: "PAYMENT")
Run Code Online (Sandbox Code Playgroud)
以及在成功或失败时处理响应的委托方法
extension PaysBuyHelper:PaysbuySDKDelegate{
func responseWithResult(result: String!, andInvoice invoice: String!) {
//here is the response of the payement
println(result)
println(invoice)
if result == "00" {
println("transaction complete and below is the invoice number")
println(invoice)
}else if result == "90"{
println("transaction incomplete information")
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我做过的工作.... https://drive.google.com/file/d/0Bzk4QVQhnqKmVno5NGdPUV9ITkE/view?usp=sharing
模态控制器在控制器的帧上下文中呈现,其被认为定义了呈现上下文.
您拥有的一个选项是使控制器调用callServiceWithCurrentView定义任何模态显示的上下文,然后可以使用它来限制所使用的屏幕上的区域.
您可以通过单击演示控制器并选择"定义上下文"复选框在XCode中执行此操作.在代码中,您可以将其设置definesPresentationContext为TRUE.
为了对您有用,您需要显示控制器的框架不是全屏.理想情况是这是UINavigationController中的控制器.
选项:
1)您的演示控制器位于带导航栏的导航控制器内.实际上它是一个儿童控制器.它使用的屏幕占用面积取决于它是否位于顶部和底部条形下方.a)设置控制器,使内容不在顶部栏下面.这有效地使框架位于导航栏下方.b)拨打电话时callServiceWithCurrentView,在导航栏上添加取消按钮.c)如果您将控制器设置为正确定义演示文稿上下文,则UIWebView应显示在导航栏下方,您可以看到新的取消按钮.
2)如果不在导航控制器中,则不是直接调用该方法,而是在子视图中添加子控制器,在该子视图上放置取消按钮.让这个子控制器进行呼叫callServiceWithCurrentView.遵循相同的机制,使这个子控制器定义上下文.然后,任何模态UIWebView都应该只覆盖子控制器的区域.
希望这能为您提供一些选择.
| 归档时间: |
|
| 查看次数: |
505 次 |
| 最近记录: |