默认情况下,SDK提供了一种方法,可以打开覆盖屏幕整个部分的默认WebView ..并且没有任何取消选项..
我只是想通过在特定视图上加载付款来添加取消按钮.或者viewcontroller ..我尝试在容器视图中使用…加载容器视图内的视图和容器视图外的取消按钮,但是当我尝试这个过程,它默认显示在全屏WebView中.也尝试创建一个PopUP但没有成功
那么,我如何在我的视图的特定部分加载SDK的webview,以便我可以放置取消按钮?
这是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;
在这里我们可以看到callServiceWithCurrentView方法将目标显示为currentviewcontroller所以我认为它在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")
以及在成功或失败时处理响应的委托方法
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") } } }
这是我做过的工作…… https://drive.google.com/file/d/0Bzk4QVQhnqKmVno5NGdPUV9ITkE/view?usp=sharing
解决方法
您拥有的一个选项是使调用callServiceWithCurrentView的控制器定义任何模式表示的上下文,然后可以使用该上下文来限制所使用的屏幕上的区域.
您可以通过单击演示控制器并选择“定义上下文”复选框在XCode中执行此操作.在代码中,您可以将definesPresentationContext设置为TRUE.
为了对您有用,您需要显示控制器的框架不是全屏.理想的情况是这是UINavigationController中的控制器.
选项:
1)您的演示控制器位于带导航栏的导航控制器内.实际上它是一个儿童控制器.它使用的屏幕占用面积取决于它是否位于顶部和底部条形图之下.
a)设置控制器,使内容不在顶部栏下面.这有效地使框架位于导航栏下方.
b)当您调用callServiceWithCurrentView时,在导航栏上添加一个取消按钮.
c)如果您将控制器设置为正确定义演示文稿上下文,则UIWebView应显示在导航栏下方,您可以看到新的取消按钮.
2)如果不在导航控制器中,那么不是直接调用该方法,而是在子视图中添加一个子控制器,在该子视图上放置取消按钮.让这个子控制器执行call callServiceWithCurrentView.遵循相同的机制,使这个子控制器定义上下文.然后,任何模态UIWebView都应该只覆盖子控制器的区域.
希望这能为您提供一些选择.