【问题标题】:openURL not being called from mail app邮件应用程序未调用 openURL
【发布时间】:2013-11-15 22:48:32
【问题描述】:

当用户选择使用自定义 URL 打开附件时,我希望能够从电子邮件应用调用我的应用。貌似IOS确实识别注册了,但是还是没有调用应用代理打开URL。

我已将我的应用注册为支持自定义 URL,方法是将其添加到 info.plist;

<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.plain-text</string>
            <string>public.text</string>
        </array>
        <key>UTTypeDescription</key>
        <string>TecNotes Data File</string>
        <key>UTTypeIdentifier</key>
        <string>com.bringardner.textext</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <string>testext</string>
            <key>public.mime-type</key>
            <string>application/vnd.testext+xml</string>
        </dict>
    </dict>
</array>

这是应用程序委托的代码;

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

// Override point for customization after application launch.
if( launchOptions == nil) {
    NSLog(@"nil options");
} else {
    NSLog(@"Have options");
    NSObject *obj = [launchOptions objectForKey:UIApplicationLaunchOptionsURLKey];
    NSLog(@"url? %@",obj);
}

 return YES;
}

-(BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url
{
NSLog(@"handle %@",url);
return YES;
}

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation
{
    NSLog(@"open %@",url);

    return YES;
}

-(BOOL) application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    NSLog(@"willFinishLaunchingWithOptions ");
    return YES;
}

在 info.plist 添加条目之前,我从电子邮件应用程序收到以下消息; 将条目添加到 info.plist 后,电子邮件应用程序会打开一个空白页面,但不会调用任何应用程序委托方法。

我见过几个类似的问题,但我尝试过的都没有解决这个问题。

【问题讨论】:

    标签: ios email openurl


    【解决方案1】:

    您的文件具有扩展名 *.testext 而在上面的 UTI 定义中我看到 .textext 此外,我能够使用空投示例 https://developer.apple.com/Library/ios/samplecode/sc2273/Introduction/Intro.html 实现自定义 UTI

    【讨论】:

    • 感谢您指出 type-o。我更正了这一点,以便到处都是一致的(.testext),但行为没有改变。
    【解决方案2】:

    您是否按照上面的空投示例进行操作。它几乎具备使它工作的一切。这就是我所遵循的,它对我来说非常有效。如果它不起作用,请告诉我,我可以粘贴更多信息

    【讨论】:

      【解决方案3】:

      在您的应用中打开电子邮件附件时,将调用方法 application:openURL:options,而不是 application:openURL:sourceApplication:annotation

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-01-07
        • 1970-01-01
        • 1970-01-01
        • 2018-12-26
        • 2020-03-20
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多