iOS 如何稳定启用 element 的 callkit? - V2EX
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 4 天前 1705 次点击
    已知 ios 开启 element(某 matrix 客户端)的 callkit 需要设置为非大陆并且可以访问 matrix.org
    通过挂梯子可启用 callkit ,但是:

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

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

    但实测后发现几乎没有改善.
    basncy
        13
    basncy  
    OP
       2 天前
    @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  
       2 天前
    @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 上目前新旧版应用并存, 还处于过渡阶段.
    basncy
        15
    basncy  
    OP
       18 小时 5 分钟前
    @YamatoRyou #14 iOS 的推送涉及太多流程了,不像 android 可以后台直接与 homeserver 交互完事。它从冷启动到调出 callkit ,中间要与 APNS ,matrix, homeserve 等交互,来回绕地球好几圈了,延时肯定爆涨。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2440 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 05:22 PVG 13:22 LAX 21:22 JFK 00:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86