代号一。 IOS 拦截 URL 问题。

Posted

技术标签:

【中文标题】代号一。 IOS 拦截 URL 问题。【英文标题】:codename one. IOS intercepting URLs issue. 【发布时间】:2016-04-15 14:45:21 【问题描述】:

我希望我的应用程序能够在外部应用程序中打开时拦截 url。我设法使用带有url方案“http”的android.xintent_filter构建提示让它在android上运行。但是它不适用于ios。我完全按照此处的说明添加了此构建提示:http://www.codenameone.com/blog/intercepting-urls-on-ios-android.html ...

<key>CFBundleURLTypes</key>     <array>         <dict>              
<key>CFBundleURLName</key>               
<string>www.mibrand.co.za</string>           
</dict>         <dict>             <key>CFBundleURLSchemes</key>               
<array>                 <string>http</string>             </array>             
</dict>     </array> 

我什至尝试将 url 方案更改为“myapp”,因为我在某处读到 ios 不允许应用程序拦截 http url 方案,但它仍然不起作用。我做错了什么?

还有一点。我读到的关于 ios 和 http url 方案的内容是正确的。因为当我尝试将我的 android.xintent 构建提示中的 url 方案更改为“myapp”时,android 手机不会将文本作为链接,因此无法打开它们,所以我不得不使用 http url 方案。但是,如果这对 ios 不起作用,那么我就有点问题了。我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

您是否在使用 Facebook 集成 check this out。

具体来说:

但是,如果您使用 FacebookConnect 需要访问这些计划。解决方法 您可以使用构建提示 ios.urlScheme 例如:

ios.urlScheme=<string>myapp</string>

【讨论】:

添加构建提示 ios.urlScheme 有效。安卓有没有类似的。因为当我在 android 上尝试 http 或 https 以外的方案时,它不会注册为链接 我认为那里没有类似的东西,我建议使用您在 Android 上使用的 URL 过滤器发布一个新问题【参考方案2】:

这在 iOS 上是不可能的。可以使用 info.plist 的 url scheme 部分中定义的 url 直接从其他应用程序打开应用程序,但它不能拦截来自其他应用程序的 http 调用。

唯一的其他选择(如果 url 链接到您拥有的网站)是使用通用链接,通用链接是在 iOS 9 中引入的,可以在此处找到文档:https://developer.apple.com/library/ios/documentation/General/Conceptual/AppSearch/UniversalLinks.html

请记住,通用链接仅适用于您拥有的网站,不适用于您不拥有的网站。

【讨论】:

是的,但是即使我将方案更改为“myapp”并单击链接,它仍然无法正常工作。我的权限也一定有问题

以上是关于代号一。 IOS 拦截 URL 问题。的主要内容,如果未能解决你的问题,请参考以下文章

代号一 IOS CaptureAudio

代号一 发送IOS应用商店构建

代号一添加ios构建提示子键

代号一 iOS 远程通知

代号一构建IOS:致命错误:找不到'MapContainer.h'

代号一“发送 iOS 构建”和“发送 Android 构建”的错误