【问题标题】:Handler event press button end caller of users iOS in Xamarin Forms?Xamarin Forms中用户iOS的处理程序事件按下按钮结束调用者?
【发布时间】:2018-11-17 18:02:16
【问题描述】:

我有一个问题是当用户在 iOS 中呼叫并按下按钮“结束通话”时。如何处理事件用户按下按钮“结束通话”并使用我的应用程序触发它。 我使用 Xamarin Forms 并且不知道如何处理它,请帮助我! 谢谢!

【问题讨论】:

  • 结束通话按钮在哪里?是在您的应用程序中还是您在谈论 iPhone 通话屏幕?你能把你做了什么和哪里没用吗?
  • @NirmalSubedi 意味着我的应用程序可以在用户按下按钮“结束通话”(它是 iPhone 通话屏幕)时处理事件。谢谢!
  • @HuuBaoNguyen,这在 iOS 上是不可能的(由于安全/隐私问题,系统手机应用程序不会暴露给 API 使用)
  • @SushiHangover 我看到了另一个应用程序,它制作了一些有助于朝着这个方向前进的东西。显然,可以捕获一个事件“呼叫完成”。但是它没有显示呼叫的号码,必须手动搜索,但至少它仍然触发用户注册呼叫。 youtube.com/watch?v=n8BEZuQlXFs
  • @HuuBaoNguyen 你以前可以通过 CTCallCenter (Core Telephony) 做到这一点,但在 iOS 10 之后已被弃用。我个人不知道没有其他方法通过 iOS VoIP 应用程序进行呼叫转移(我们将用户的电话号码转发到 VoIP 服务器,然后将该呼叫(现在是基于 VoIP 的呼叫)转发回电话,因此我们的 VoIP 应用程序接听电话并跟踪持续时间、来电显示、通话记录、第 3 方集成等...)

标签: c# .net xamarin xamarin.forms


【解决方案1】:

iOS 非常安全。因此,您可以在用户按下 iOS 上的“结束通话”按钮时处理事件,但您无法获取电话号码或记录用户的对话。 试试看,你可以处理事件:

        if (UIDevice.CurrentDevice.CheckSystemVersion(11, 0))
        {
            _callObserver = new CXCallObserver();
            temp = new MyCXCallObserverDelegate();
            _callObserver.SetDelegate(temp, null);
        }
        else
        {
            _callCenter = new CTCallCenter();
            _callCenter.CallEventHandler += CallEvent;
        }

参考:Detecting the call events in ios

注意:对于 ios 版本 CallCenter 库。 和Callkit ios 版本>= 11 的库

【讨论】:

    猜你喜欢
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 2017-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多