标签: custom-scheme-url

方法 'scene(_:openURLContexts:)' 没有被调用

在 info.plist 文件中,我配置URL IdentifierURL Scheme成功。我也可以使用自定义 URL 打开应用程序。问题是当应用程序第一次启动该方法时

func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) 
Run Code Online (Sandbox Code Playgroud)

不叫。

我有一些基于上述方法的依赖功能。所以当应用程序第一次启动时,我在我的应用程序中看不到任何东西。

我还在方法中添加了代码

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
        
        guard let _ = (scene as? UIWindowScene) else { return }
        
        let url = connectionOptions.urlContexts.first?.url
        
    }
Run Code Online (Sandbox Code Playgroud)

但我在这里得到的 url 为零。

但是,如果我的应用程序处于后台模式并且我点击了 URL,那么上述方法调用成功并且相关功能正常工作。以下是我scene(_:openURLContexts:)sceneDelegate.

func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>){
        let url = URLContexts.first?.url
        let urlString: String = url!.absoluteString
        
        if let urlComponents = URLComponents(string: urlString),let queryItems …
Run Code Online (Sandbox Code Playgroud)

iphone custom-scheme-url swift5 ios13

19
推荐指数
3
解决办法
4339
查看次数

没有确认提示的自定义URL方案(Swift)

我找到了两个从Safari网页打开我的应用程序的选项:在我的应用程序项目Info.plist或Apple的Universal Linking中创建的自定义URL方案.显然,自定义URL方案是最容易设置的方案,但我遇到的问题是Safari显示一个确认窗口,询问"打开myapp?" 首先,用户必须在应用实际打开之前点击确定.我希望我的应用程序在打开方案时自动打开,我被告知唯一的方法是通过Universal Linking(如果不是这样,请纠正我).但是,如果这是真的,我想知道是否有可能以任何方式将所需apple-app-site-association文件放在http://域而不是https://?根据官方的Apple文档,正确的通用链接的格式明确地开始,https://但是https://如果没有重定向几次就无法加载我的域名,这会混淆我为在应用程序中执行其他任务而编写的Web服务.这个问题之后我留下的两个主要问题:

1)使用自定义URL方案(myscheme://)来解决确认提示是否真的不可能?如果不是不可能,我该怎么做?

2)如果我必须使用Apple Universal Linking,我可以使用http://域吗?如果是这样,我该怎么办?现在,如果我加载通用链接,它只显示apple-app-site-association文件中的字典,我很确定不应该发生.我被告知它应该NSUserActivity向我的应用代表发送一个对象.如何通过http://链接完成此操作?

ios swift ios-universal-links custom-scheme-url

9
推荐指数
1
解决办法
3200
查看次数