【问题标题】:Event/Method triggered when call triggered from WebView ends in IPhone?从 WebView 触发的调用以 iPhone 结束时触发的事件/方法?
【发布时间】:2012-04-25 11:02:20
【问题描述】:

我正在通过 UIWebView 触发电话呼叫,因此当呼叫结束时,用户会通过以下代码直接返回到我的应用程序:

UIWebView *callWebview = [[UIWebView alloc] init];
NSURL *telURL = [NSURL URLWithString:@"tel:number-to-call"];
[callWebview loadRequest:[NSURLRequest requestWithURL:telURL]];

当它将控制权返回给我的应用程序时,我想执行一些代码,但我无法确定操作系统在调用结束后返回我的应用程序时是否调用了任何方法?当控件返回时,ViewWill、ViewDid 等永远不会被调用。

如果在调用结束并且控制权返回到 webview/app 时调用了任何东西怎么办?

【问题讨论】:

标签: iphone ios uiwebview call


【解决方案1】:

UIWebview 类有一些委托函数。webview 在开始加载和完成加载请求等时调用这些函数。我英语不好,希望你能理解我。如果我看错了你的问题,我的回答不是你想要的,请原谅我。

【讨论】:

  • 是的,我知道 webview 有委托功能,但我没有加载页面,我使用的是 kludge。基本上,如果您使用正常的 [UIApplication sharedApplicatio] openUrl:... 调用,则在您实例化一个电话后,Apple 不会返回您的应用程序。这将以编程方式启动呼叫,但当用户结束呼叫时,他们不会返回到您的应用程序。因此,如果您从 web 视图中打开 tel:// url,您可以让 iOS 返回到您的应用程序。如果你这样做,当用户结束通话时,他们会直接返回到你的应用程序。
  • 这是我想要的行为,但是在返回我的应用程序后,我假设会调用一些委托方法,但没有(至少在视图上)这样做。我将调查是否调用了应用程序代表,并且可能需要查看我是否可以使用电话状态通知来完成此操作。
  • 跟进。有某些应用程序级委托方法确实会作为此 kludge 循环的一部分被调用,可用于执行我需要的操作,但我没有遇到问题,对象正在从内存中删除并在此堆栈中重新创建,并且当它们被 iOS 重新创建时,应用程序委托方法的时间安排在重新创建事件之前,并且它们不会触发任何事件。
猜你喜欢
  • 1970-01-01
  • 2020-09-12
  • 2015-07-25
  • 1970-01-01
  • 1970-01-01
  • 2016-05-10
  • 2016-06-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多