Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了swift – 如何使用默认的URL方案处理大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我想在我的应用程序中构建URI(或URL方案)支持。 我在我的(void)初始化中做了一个LSSetDefaultHandlerForURLscheR_73_11845@e(),我也在我的info.plist中设置了特定的URL方案。所以我有没有Apple Script或Apple Events的URL方案。 当我打电话给myscheR_73_11845@e:在我最喜欢的浏览器中,系统激活我的应用程序。 问题在于如何处理这些方案。或者更
我想在我的应用程序中构建URI(或URL方案)支持

我在我的(void)初始化中做了一个LSSetDefaultHandlerForURLscheR_73_11845@e(),我也在我的info.plist中设置了特定的URL方案。所以我有没有Apple Script或Apple Events的URL方案。

当我打电话给myscheR_73_11845@e:在我最喜欢的浏览器中,系统激活我的应用程序。

问题在于如何处理这些方案。或者更好的说:当我的程序被调用时,如何定义应用程序应该做什么?

有没有一个特殊的方法,我必须实现或我必须在某个地方注册一个

正如你所提到的AppleScript,我想你正在Mac OS X上工作。

注册和使用自定义URL方案的一种简单方法是在.plist中定义方案:

<key>CFBundleURLTypes</key>
<array>
    <Dict>
        <key>CFBundleURLName</key>
        <String>URLHandlerTestApp</String>
        <key>CFBundleURLscheR_73_11845@es</key>
        <array>
            <String>urlHandlerTestApp</String>
        </array>
    </Dict>
</array>

注册该方案,请将其放在AppDelegate的初始化中:

[[NSAppleEventManager sharedAppleEventManager]
    setEventHandler:self
        andSELEctor:@SELEctor(handleURLEvent:withReplyEvent:)
      forEventClass:kInternetEventClass
         andEventID:kAEGetURL];

每当您的应用程序通过URL方案激活时,定义的选择器将被调用

事件处理方法一个存根,显示如何获取URL字符串:

- (void)handleURLEvent:(NSAppleEventDescriptor*)event
        withReplyEvent:(NSAppleEventDescriptor*)replyEvent
{
    NSString* url = [[event paramDescriptorForKeyword:keyDirectObject]
                        stringvalue];
    NSLog(@"%@",url);
}

苹果文档:Installing a Get URL Handler

更新
我刚刚注意到在applicationDidFinishLaunching中安装事件处理程序的沙盒应用程序有一个问题。使用启用的沙箱,当通过单击使用自定义方案的URL启动应用程序时,处理程序方法不会被调用
通过安装处理程序一点,在applicationWillFinishLaunching:中,该方法按预期方式被调用

- (void)applicationWillFinishLaunching:(Nsnotification *)aNotification
{
    [[NSAppleEventManager sharedAppleEventManager]
        setEventHandler:self
            andSELEctor:@SELEctor(handleURLEvent:withReplyEvent:)
          forEventClass:kInternetEventClass
             andEventID:kAEGetURL];
}

- (void)handleURLEvent:(NSAppleEventDescriptor*)event
        withReplyEvent:(NSAppleEventDescriptor*)replyEvent
{
    NSString* url = [[event paramDescriptorForKeyword:keyDirectObject]
                        stringvalue];
    NSLog(@"%@",url);
}

在iPhone上,处理URL方案激活的最简单方法是实现UIApplicationDelegate的应用程序:handLeopenURL: – Documentation

大佬总结

以上是大佬教程为你收集整理的swift – 如何使用默认的URL方案处理全部内容,希望文章能够帮你解决swift – 如何使用默认的URL方案处理所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。