OneXray iOS:重定向截断 deep link 参数导致 panel/mode 丢失
OneXray 维护者在 iOS 26.11.1 开发版本中验证:直接打开完整 `onexray://` 链接时,Remnawave 和 Provider 配置可以预填;示例重定向服务返回 HTTP 301 时却把 Location 截断到只剩 `url` 参数,`panel` 和 `mode` 在应用收到链接前已经丢失。
作者原文@yiguodevThanks for the report. We tested the current 26.11.1 development build on iOS: both cold and warm launches correctly prefill Remnawave and Provider configuration when opening this complete direct link:
onexray://onexray.com/sub/add?url=https://example.com/test-link&panel=remnawave&mode=providerManaged#VPNWith the redirect service in your example, we reproduced an HTTP 301 response whose
Locationis already truncated to:onexray://onexray.com/sub/add?url=https://example.com/test-linkThe
panelandmodeparameters are therefore lost before OneXray receives the URI. Safari retained the name fragment in our test.Please either distribute the direct deeplink or update the redirect service:
- Encode the entire deeplink as the value of the outer
urlparameter, for example withURLSearchParams.- On the server, parse that parameter and return the original
onexray://...URI inLocation. A normal query parser already decodes one outer layer; do not decode it again.- Fix the server handling as well: currently, submitting an encoded value makes it return the percent-encoded text unchanged, rather than a valid
onexray://URI. Encoding the outer parameter alone is not sufficient with the current implementation.Closing this as an external redirect issue: the reproduced parameter loss occurs before the link reaches OneXray.