V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
basncy
V2EX  ›  iDev

iOS 如何稳定启用 element 的 callkit?

  •  
  •   basncy · 2 天前 · 1452 次点击
    已知 ios 开启 element(某 matrix 客户端)的 callkit 需要设置为非大陆并且可以访问 matrix.org
    通过挂梯子可启用 callkit ,但是:

    ios 要杀后台,长时间锁屏 vpn 断开后,这时来电,element 比梯子启动更快,访问 matrix.org 时 vpn 还没有连上,导致来电信息只显示一条通知一闪而过,不能触发 callkit ,不能长时间提醒这条重要"消息"。
    V 友有没有解决这个问题的?

    顺便问问哪款梯子可以长时间熄屏后不掉 vpn(可在服务端调试重连情况), 那种亮屏后(按需)重连的不适合这种场景。
    14 条回复    2025-11-14 12:36:13 +08:00
    MacsedProtoss
        1
    MacsedProtoss  
       2 天前 via iPhone   ❤️ 1
    VPN 正常情况下是不会被断开的,是正常的 network extension 独立进程
    你这个绝对不是 VPN 的问题
    vTwoX
        2
    vTwoX  
       2 天前
    同在用这个软件,之前以为没有 callkit ,原来是要改为非大陆,我是用的自部署,不知道这种方式,启用 callkit 也需要能访问 matrix.org 这个地址吗?
    kiev84
        3
    kiev84  
       2 天前
    直接使用非大陆版的 iPhone
    basncy
        4
    basncy  
    OP
       2 天前
    @MacsedProtoss 所以那是什么 vpn ?另外,在服务器上可以通过重连记录来判断有没有断开。
    @vTwoX 是的,如果在梯子服务器上把 matrix.org 给屏了,就不会出现 callkit 了。最近还发现,如果梯子服务器通过 warp 访问 matrix.org,也不会出现 callkit 。
    basncy
        5
    basncy  
    OP
       2 天前
    @vTwoX 自建也要能访问 matrix.org 来电时才能激活 callkit ,属于是断得不彻底(对比 android 不依赖 GCM)。
    YamatoRyou
        6
    YamatoRyou  
       2 天前
    经过测试 即便 iPhone 连接的是有透明代理的 Wi-Fi, 偶尔也不显示 Callkit. 我暂时没有发现规律, 可能与代理节点也有关.
    YamatoRyou
        7
    YamatoRyou  
       2 天前
    @YamatoRyou #6 另外自建的 Matrix 也需要确保其也能访问 matrix.org.
    MacsedProtoss
        8
    MacsedProtoss  
       2 天前 via iPhone
    @basncy 所有的 VPN 都不会断开的,至于我自用那肯定是 surge
    你可以写一个 demo app 申请后台任务 然后就是无法请求到你的服务器
    然后打开你的 VPN 之后再打开 demo 再锁屏,你可以在你的服务器看到锁屏之后依然有走代理到你的服务器的请求
    VPN 服务是专门的进程的,你就算把你认为的 VPNapp 杀掉,也只是杀掉他的 UI 配置进程,不影响 VPN 运行
    basncy
        9
    basncy  
    OP
       2 天前
    @YamatoRyou #6 你检查一下透明代理网关的 DNS 查询记录,在收到 call 的时候,似乎会询问 matrix.org 本设备是否能激活 callkit ,然后此状态会缓存一段时间。
    @YamatoRyou 回去试一下 surge. 我用的是 openvpn 回家走透明代理。
    134432233
        10
    134432233  
       2 天前 via iPad
    我也在用 Element ,但是有一個很頭疼的問題,就是沒辦法清理聊天記錄,要麼一條條刪除,要麼離開兩個人的會話再重新加回來,太麻煩了
    basncy
        11
    basncy  
    OP
       1 天前
    听说 element X push 流程不一样,在国行 ipad 上试了一把,callkit 可用.
    有 iphone 的同学可以试试,我只有 android 。
    YamatoRyou
        12
    YamatoRyou  
       21 小时 33 分钟前
    @basncy #9
    我用得最多的代理方式是路由器, 只能在 SmartDNS 日志中看到 iPhone 尝试解析 matrix.org 而没有具体细节.
    在 iPhone 上的两款新旧版应用的表现似乎有区别: 旧版应用能看到的 Callkit 的机会似乎多一些, 而新版要差一些. iPhone 已经过如下配置:
    - 地区设为美国;
    - 全天连接透明代理的 Wi-Fi, 且 DNS 有基本的分流处理;

    但实测后发现几乎没有改善.
    basncy
        13
    basncy  
    OP
       17 小时 6 分钟前
    @YamatoRyou #12
    element classical 请求的是 https://matrix.org/_matrix/push/v1/notify
    element X 只向 homeserver 请求,但后端处理流程更长。
    相关 issue: https://github.com/element-hq/element-ios/issues/7980
    YamatoRyou
        14
    YamatoRyou  
       16 小时 12 分钟前
    @basncy #11
    我的机器是美版 iPhone SE 3, 我做了以下调整:
    - 设置 iPhone 地区为中国大陆;
    - 设置 iPhone 显示语言为简体中文;
    - 停止路由器上的透明代理 (但服务器仍然可以访问 matrix.org);
    - 额外尝试: iPhone 连接到另一机器开启的热点, 而上游是蜂窝网络.

    结果:
    iPhone 上的 Element X 确实可以显示 Callkit.

    1. Element X 仍然名义上向我的服务器注册了 matrix.org 的 pusher, 我的理解大概是机器先请求我的服务器; 服务器再请求 matrix.org; matrix.org 再请求 APNS, 最后的通知由 APNS 推送给目标机器. 我印象中 IM 类应用在 iPhone 上的推送完全被苹果统一管理;
    2. (不考虑旧版应用) Callkit 出现的时机比较奇怪: 在熄屏且唤醒间隔较长的情况下, Callkit 有时在对方等待即将超时才出现 (存在明显被推迟的现象), 有时甚至根本不出现 (不人工干预的前提下全程黑屏, 然后过几分钟屏幕才亮并显示一个文字通知). 已解锁且操作手机期间, Callkit 则有更高的概率以横幅 (位于屏幕顶端, 带红蓝按钮) 的形式出现 (也更及时);
    3. 即使 iPhone 能因为收到来电而有所反应, 但也并非每次都能显示 Callkit. 偶尔一两次还是只显示文字通知.

    iPhone 上目前新旧版应用并存, 还处于过渡阶段.
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   881 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 20:48 · PVG 04:48 · LAX 12:48 · JFK 15:48
    ♥ Do have faith in what you're doing.