精华内容
下载资源
问答
  • Windows 设置文件默认打开方式

    万次阅读 多人点赞 2019-04-14 12:08:15
    【前言】 计算机是现在办公必用品,如何熟练使用自己的计算机从而提高自己的...今天在此为大家介绍一招设置文件的默认打开方式。 【设置方式】 一、重复操作: 1.每次打开一个计算机未设置默认打开方式的...

    强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan

    【前言】

           计算机是现在办公必用品,如何熟练使用自己的计算机从而提高自己的效率是每个人都应该去学习去实践;今天在此为大家介绍一招设置文件的默认打开方式。

    【设置方式】

             一、重复操作:

                   1.每次打开一个计算机未设置默认打开方式的文件时,每次都需要右键用指定软件打开(或选一遍打开方式):

                   2.在打开方式中可以找到相应的软件 或者 在这台电脑上查找其他应用 中能找到软件:

             二、去除重复操作的设置:

                   1.如果刚装完系统或者很多常用文件都未进行设置时,可以在Windows的设置中进行统一设置:

                      (1)在控制面板中切换到 小图标 查看方式找到 默认程序

                      (2)程序维度进行设置:

                           a.点击设置默认程序

                           b.将常用程序设置可以打开哪些类型文件

                      (3)程序维度进行设置:

                          a.将文件类型或协议与程序关联

                          b.按照文件后缀设置相应的默认打开软件

                   2.如果在文件格式中未找到的文件,如果以后遇到在第一次打开的时候进行设置即可

                      (1)右键文件,选择打开方式,并勾选 始终使用此应用打开 文件

                      (2)针对一些特殊情况的,可以右键属性---》常规---》更改

             三、类似博文推荐:

                   https://blog.csdn.net/zhanghan18333611647/article/details/28855157

                   https://blog.csdn.net/zhanghan18333611647/article/details/45021515

                   https://blog.csdn.net/zhanghan18333611647/article/details/45816719

    【小结】

            小技巧大用处,掌握这些小技巧可以让自己在工作中省去更多无用的操作,大大提高自己的工作效率;

    展开全文
  • 跳转到设置相应项-打开其他应用-打开浏览器-拨打电话-发送短信

    原文网址:http://blog.csdn.net/james_1010/article/details/8556715

    一,打开设置各项

    5.0+后可在代码中调用如下代码打开设置相应界面:
    NSURL*url=[NSURL URLWithString:@”command stringI”];
    [[UIApplication sharedApplication] openURL:url];
    即可跳转到设置页面的对应项:command string:
    Notification — prefs:root=NOTIFICATI_ID
    Phone — prefs:root=Phone
    Photos — prefs:root=Photos
    Profile — prefs:root=General&path=ManagedConfigurationList
    Reset — prefs:root=General&path=Reset
    Safari — prefs:root=Safari
    Siri — prefs:root=General&path=Assistant
    Sounds — prefs:root=Sounds
    Software Update — prefs:root=General&path=SOFTWARE_UPDATE_LINK
    Store — prefs:root=STORE
    Twitter — prefs:root=TWITTER
    Usage — prefs:root=General&path=USAGE
    VPN — prefs:root=General&path=Network/VPN
    Wallpaper — prefs:root=Wallpaper

    Wi-Fi — prefs:root=WIFI

    二,打开其他应用

    我们来讨论一下,在iOS开发中,如何实现从app1打开app2。

    基本的思路就是,可以为app2定义一个URL,在app1中通过打开这个URL来打开app2,在此过程中,可以传送一些参数。下面来讨论一下具体的实现过程。
    
    1. 在app2的info.plist中定义URL,就是在文件中添加URL types一项。可按下图进行添加。
    

    更高版本xcode设置如下:

    [identifier可不设]

    2. 在app1的代码中打开刚才定义的URL,代码如下:
    

    [cpp] view plaincopy

    NSURL *url = [NSURL URLWithString:@"myapp://test?para1=1¶2=2"];  
    [[UIApplication sharedApplication] openURL:url];  
    
     当然,这个URL的形式可以是其他形式的,只要以"myapp://"开始即可。
    
    这样,就可以在app1中打开app2.
    
    打开之后,会调用app2的AppDelegate的
    

    [cpp] view plaincopy

    - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation   
    

    由于URL是自己定义的,所以会存在URL重复的情况。经过测试发现,如果试图打开这个URL,那么会打开先安装的那个应用。

    (如果没安装app2,则:

    NSString *pLink = @”http://itunes.apple.com/cn/app//app21111111?mt=1“;
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:pLink]];

    )

    三,打开浏览器

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@”http://www.google.com/“]];

    四,拨打电话

    // 定义点击拨号按钮时的操作

    • (void)callAction{

    NSString *number = @”“;// 此处读入电话号码

    // NSString *num = [[NSString alloc]initWithFormat:@”tel://%@”,number]; //number为号码字符串 如果使用这个方法结束电话之后会进入联系人列表

    NSString *num = [[NSString alloc]initWithFormat:@”telprompt://%@”,number]; //而这个方法则打电话前先弹框 是否打电话 然后打完电话之后回到程序中 网上说这个方法可能不合法 无法通过审核

    [[UIApplication sharedApplication] openURL:[NSURLURLWithString:num]]; //拨号

    }

    // 第三种方式打电话

    -(void)CallPhone{

    NSString *phoneNum = @”“;// 电话号码

    NSURL *phoneURL = [NSURL URLWithString:[NSStringstringWithFormat:@”tel:%@”,phoneNum]];

    if ( !phoneCallWebView ) {

    phoneCallWebView = [[UIWebView alloc]initWithFrame:CGRectZero];// 这个webView只是一个后台的容易 不需要add到页面上来 效果跟方法二一样 但是这个方法是合法的

    }

    不管是用电话应用本身拨打电话还是在第三方应用中拨打电话,只要在电话号码后加”,”就能直接拨打分机了;

    例如在第三方应用中 添加下面的代码:

    [[UIApplicationsharedApplication]openURL:[NSURLURLWithString:@”tel://01011112222,3333”]];

    就能直接拨打分机了

    五,发送短信

    iOS4.0新加入了MFMessageComposeViewController和MFMessageComposeViewControllerDelegate,提供了发送短信的接口,可以像发送邮件那样不用跳出程序来发送短信. 介绍可参阅Message UI
    Framework Reference

    一些笔记:

    MFMessageComposeViewController

    提供了操作界面
    
    使用前必须检查canSendText方法,若返回NO则不应将这个controller展现出来,而应该提示用户不支持发送短信功能.
    
    界面不能自行定制
    
    要发送的短信的内容(body)和收件人(recipients)在展现这个controller前需初始化好,展现了之后短信内容不能通过程序来进行修改.不过用户仍然可以手工修改短信内容和选择收件人
    
    用户点了发送或者取消,或者发送失败时,MFMessageComposeViewControllerDelegate 的– messageComposeViewController:didFinishWithResult:方法都能得到通知,在这里进行相应的处理
    

    若在iOS3.0上运行的话,会提示dyld: Symbol not found: OBJC_CLASS$_MFMessageComposeViewController .解决方案:

    MessageUI.framework的引入类型应选择weak(在target -> Get Info -> General -> Linked Libraries -> MessageUI.framework -> Type 里修改)
    
    不要在.h文件里直接import MessageUI/MFMessageComposeViewController.h,改为import <MessageUI/MessageUI.h>
    

    代码:

    pragmamark -

    pragmamark SMS

    -(IBAction)showSMSPicker:(id)sender {
    //The MFMessageComposeViewController class is only available in iPhone OS 4.0 or later.
    //So, we must verify the existence of the above class and log an error message for devices
    //running earlier versions of the iPhone OS. Set feedbackMsg if device doesn’t support
    //MFMessageComposeViewController API.Class messageClass = (NSClassFromString(@”MFMessageComposeViewController”));

    if(messageClass !=nil) {
        //Check whether the current device is configured for sending SMS messagesif([messageClass canSendText]) {
            [self displaySMSComposerSheet];
        }
        else{
            [UIAlertView quickAlertWithTitle:@"设备没有短信功能"messageTitle:nil dismissTitle:@"关闭"];
        }
    }
    else{
        [UIAlertView quickAlertWithTitle:@"iOS版本过低,iOS4.0以上才支持程序内发送短信"messageTitle:nil dismissTitle:@"关闭"];
    }
    

    }

    -(void)displaySMSComposerSheet
    {
    MFMessageComposeViewController *picker =[[MFMessageComposeViewController alloc] init];
    picker.messageComposeDelegate =self;

    NSMutableString* absUrl =[[NSMutableString alloc] initWithString:web.request.URL.absoluteString];
    [absUrl replaceOccurrencesOfString:@"http://i.aizheke.com"withString:@"http://m.aizheke.com"options:NSCaseInsensitiveSearch range:NSMakeRange(0, [absUrl length])];
    
    picker.body=[NSString stringWithFormat:@"我在爱折客上看到:%@ 可能对你有用,推荐给你!link:%@",[web stringByEvaluatingJavaScriptFromString:@"document.title"]
                                        ,absUrl];
    [absUrl release];
    [self presentModalViewController:picker animated:YES];
    [picker release];
    

    }

    • (void)messageComposeViewController:(MFMessageComposeViewController *)controller
      didFinishWithResult:(MessageComposeResult)result {

      switch(result)
      {
      caseMessageComposeResultCancelled:
      LOG_EXPR(@”Result: SMS sending canceled”);
      break;
      caseMessageComposeResultSent:
      LOG_EXPR(@”Result: SMS sent”);
      break;
      caseMessageComposeResultFailed:
      [UIAlertView quickAlertWithTitle:@”短信发送失败”messageTitle:nil dismissTitle:@”关闭”];
      break;
      default:
      LOG_EXPR(@”Result: SMS not sent”);
      break;
      }
      [self dismissModalViewControllerAnimated:YES];
      }

    iOS中,应用A如果想打开应用B,需要在B工程的info.plist文件中添加URL types字段下面的URL identifier 和 URL Schemes 字段;

    比如URL identifier 设置为:com.mycompany.testapp ; URL Schemes 设置为:launch;

    那么在工程A中可以通过:

        UIApplication *app = [UIApplicationsharedApplication];
    
        NSURL *url = [NSURLURLWithString:@"myapp://com.adsage"];
    
        [app openURL:url];
    

    启动应用B。

    同样的道理,利用 UIApplication 类的 - (BOOL)canOpenURL:(NSURL *)url 成员方法可以判断是否能启动应用B;

    UIApplication *app = [UIApplicationsharedApplication];

        NSURL *url = [NSURLURLWithString:@"myapp://com.adsage"];
    

    if ([appcanOpenURL:url]) {

       NSLog(@"can  launch B app!");
    

    }else {

       NSLog(@"can not launch B app!");
    

    }

    如果能启动应用B,说明已经安装应用B,反之。

    不过此方法必须知道应用B(被启动应用) 的URL types属性 。

    在SDK中打开其他接入应用的解决方案

    一直以来,在iOS的开发中,在程序中打开另外一个应用是不允许。后来有正义之士用class-dump在私有API中找到了这样的功能。那就是使用UIApplication的launchApplicationWithIdentifier:suspended:来打开。

    使用的办法如下:

    NSString *identifier = [[NSBundle mainBundle] objectForInfoDictionaryKey:@”CFBundleIdentifier”];

    [[UIApplication sharedApplication] launchApplicationWithIdentifier:identifier suspended:NO];

    毕竟是私有API不是一个好的办法,至少你永远都得不到App Store的认可。

    在某些时候是其实我们可能还是需要这样的功能。作为一个SDK,其实还是有一种比较好的解决方案的。那就是使用UIApplication的openURL:的方法。

    我们先来了解一下openURL和实现的方案。OpenURL其实是有很丰富的功能,除了简单的调用safari打开网站,还可有google地图搜索,Mail,拨打电话,发送短信,打开AppStore。

    -(IBAction)openMaps {//打开地图
    // Where is Apple on the map anyway?
    NSString* addressText = @”1 Infinite Loop, Cupertino, CA 95014″;
    // URL encode the spaces
    addressText = [addressText stringByAddingPercentEscapesUsingEncoding: NSASCIIStringEncoding];
    NSString* urlText = [NSString stringWithFormat:@”http://maps.google.com/maps?q=%@“, addressText];
    // lets throw this text on the log so we can view the url in the event we have an issue
    NSLog(urlText);
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:urlText]];
    }
    -(IBAction)openEmail {//打开mail
    // Fire off an email to apple support
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@”mailto://devprograms@apple.com”]];
    }
    -(IBAction)openPhone {//拨打电话
    // Call Google 411
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@”tel://8004664411”]];
    }
    -(IBAction)openSms {//打开短信
    // Text to Google SMS
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@”sms://466453”]];
    }
    -(IBAction)openBrowser {//打开浏览器
    // Lanuch any iPhone developers fav site
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@”http://itunesconnect.apple.com“]];
    }

    那怎样来制作从一个应用打开其他应用,这其实很简单,打开info.plist,添加一项URL types,展开URL types,再展开Item1,将Item1下的URL identifier修改为URL Scheme,展开URL Scheme,将Item1的内容修改为myapp其他程序可通过myapp://访问此自定义URL。

    其实就是类似下面的样式。

    这样就只要open这个应用的自定义url,系统就可以帮我们找到并打开这个程序。

    NSURL *url = [NSURL URLWithString:@” myapp:”];

    [[UIApplication sharedApplication] openURL:url];

    作为SDK比普通应用的优势在于,每一个接入的应用都有一个AppId用于区分,我们就可以充分利用这个AppId来制作。

    我们可以要求第三方开发者需要在他们Info.Plist中配置这样的字段,这样我们就可以在我们的SDK界面中打开对应AppId的应用,当然,这需要设备中真的有安装这个程序。

    例如某应用分配AppId为111122223333,我们要求其再Info.plist定义URL Schemes为NDSDK111122223333,这样,我们在内部代码就可以准确识别是否有这样的程序。

    更有甚者,我们可以通过canOpenURL这个方法来判断这台设备是否安装了这个应用,如果可以打开,返回YES,那应该是有安装这样的程序,不管是ipa还是Pxl的程序,应该都是没有问题的。

    如果我们真的选择这样子做,那就需要在文档中说明清楚。但是需要注意的是,也许作为程序员,可能不是很喜欢看文档,也许你费尽心思写的文档他并没有看到。这时我们应该来一点强硬的手段,于是有了下面这段代码的功能。

    1:检查用户是否配置了AppId

    2:有没有准确配置Info的CFBundleURLSchemes字段

    3:是不是可以正确打开。

    // Check App ID:

    // This is really a warning for the developer, this should not
    
    // happen in a completed app
    
    if (!kAppId) {
    
        UIAlertView *alertView = [[UIAlertView alloc]
    
                                  initWithTitle:@"Setup Error"
    
                                  message:@"Missing app ID. You cannot run the app until you provide this in the code."
    
                                  delegate:self
    
                                  cancelButtonTitle:@"OK"
    
                                  otherButtonTitles:nil,
    
                                  nil];
    
        [alertView show];
    
        [alertView release];
    
    } else {
    
        // Now check that the URL scheme fb[app_id]://authorize is in the .plist and can
    
        // be opened, doing a simple check without local app id factored in here
    
        NSString *url = [NSString stringWithFormat:@"fb%@://authorize",kAppId];
    
        BOOL bSchemeInPlist = NO; // find out if the sceme is in the plist file.
    
        NSArray* aBundleURLTypes = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleURLTypes"];
    
        if ([aBundleURLTypes isKindOfClass:[NSArray class]] &&
    
            ([aBundleURLTypes count] > 0)) {
    
            NSDictionary* aBundleURLTypes0 = [aBundleURLTypes objectAtIndex:0];
    
            if ([aBundleURLTypes0 isKindOfClass:[NSDictionary class]]) {
    
                NSArray* aBundleURLSchemes = [aBundleURLTypes0 objectForKey:@"CFBundleURLSchemes"];
    
                if ([aBundleURLSchemes isKindOfClass:[NSArray class]] &&
    
                    ([aBundleURLSchemes count] > 0)) {
    
                    NSString *scheme = [aBundleURLSchemes objectAtIndex:0];
    
                    if ([scheme isKindOfClass:[NSString class]] &&
    
                        [url hasPrefix:scheme]) {
    
                        bSchemeInPlist = YES;
    
                    }
    
                }
    
            }
    
        }
    
        // Check if the authorization callback will work
    
        BOOL bCanOpenUrl = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString: url]];
    
        if (!bSchemeInPlist || !bCanOpenUrl) {
    
            UIAlertView *alertView = [[UIAlertView alloc]
    
                                      initWithTitle:@"Setup Error"
    
                                      message:@"Invalid or missing URL scheme. You cannot run the app until you set up a valid URL scheme in your .plist."
    
                                      delegate:self
    
                                      cancelButtonTitle:@"OK"
    
                                      otherButtonTitles:nil,
    
                                      nil];
    
            [alertView show];
    
            [alertView release];
    
        }
    
    }
    

    ios应用之间的调用步骤:
    一、调用自己开发的应用

    1)在plist文件中,注册对外接口

    在xcode group&files 里面,展开 resources选择<app>info.plist
    

    鼠标右击information property list ,然后从列表中选择URL types

    右击 add row 添加一个对象(item)右击item add row  
    
    从列表中选择 URL  Schemes 再右击添加一个对象(item1)
    
    将item1得值设置为:myapp
    
    这个myapp就是对外接口,其它应用可以通过它,调用该应用
    

    plist如下图所示:

    2)调用方法

    在你需要调用上面注册过对外接口的应用中,添加下面代码即可:

    NSURL *url = [NSURL URLWithString:@”myapp:”];

    [[UIApplication sharedApplication] openURL:url];

    通过上述两个步骤,你可以在你的应用中,让用户打开你的其它应用

    二、调用IOS自带的应用

    上面讲述的是调用自身的应用,讲解了如何在自己应用之间调用问题,今天介绍一下如果调用IOS自带的app的方法

    一、调用app store界面方法

    在实际开发中,往往要推荐自己其他应用和推荐自己的收费软件,那么我们就需要在程序中直接连接到app store的相应页面。

    实际上的做法很简单,使用的还是UIApplication类的OpenURL方法:

    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@”程序的相应连接”]];

    二、调用其它应用的方法

    1)调用 自带mail


    [[UIApplicationsharedApplication] openURL:[NSURLURLWithString:@”mailto://admin@hzlzh.com”]];

    2)调用 电话phone


    [[UIApplication sharedApplication] openURL:[NSURLURLWithString:@”tel://8008808888”]];


    3)调用 SMS

    
[[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@”sms://800888”]];


    4)调用自带 浏览器 safari

    
[[UIApplicationsharedApplication] openURL:[NSURLURLWithString:@”http://www.hzlzh.com“]];

    5)调用 Remote

    
[[UIApplicationsharedApplication] openURL:[NSURL URLWithString:@”remote://fff”]];

    上面是最基本的语句,没什么处理过程。

    如:调用phone可以传递号码,调用SMS只能设定号码,不能初始化SMS内容。

    三、官方原理讲解
    和其它应用程序进行通讯

    如果一个应用程序支持一些已知类型的URL,您就可以通过对应的URL模式和该程序进行通讯。然而,在大多数情况下,URL只是用于简单地启动一个应用程序并显示一些和调用方有关的信息。举例来说,对于一个用于管理地址信息的应用程序,您就可以在发送给它的URL中包含一个Maps程序可以处理的地址,以便显示相应的位置。这个级别的通讯为用户创造一个集成度高得多的环境,减少应用程序重新实现设备上其它程序已经实现的功能的必要性。

    苹果内置支持http、mailto、tel、和sms这些URL模式,还支持基于http的、指向Maps、YouTube、和iPod程序的URL。应用程序也可以自己注册定制的URL模式。您的应用程序可以和其它应用程序通讯,具体方法是用正确格式的内容创建一个NSURL对象,然后将它传给共享UIApplication对象openURL:方法。openURL:方法会启动注册接收该URL类型的应用程序,并将URL传给它。当用户最终退出该应用程序时,系统通常会重新启动您的应用程序,但并不总是这样。系统会考虑用户在URL处理程序中的动作及在用户看来返回您的应用程序是否合理,然后做出决定。

    下面的代码片断展示了一个程序如何请求另一个程序提供的服务(假定这个例子中的“todolist”是由应用程序注册的定制模式):

    NSURL *myURL = [NSURL URLWithString:@”todolist://www.acme.com?Quarterly%20Report#200806231300”];

    [[UIApplication sharedApplication] openURL:myURL];

    重要提示:如果您的URL类型包含的模式和苹果定义的一样,则启动的是苹果提供的程序,而不是您的程序。如果有多个第三方的应用程序注册处理同样的URL模式,则该类型的URL由哪个程序处理是没有定义的。

    如果您的应用程序定义了自己的URL模式,则应该实现对该模式进行处理的方法,具体信息在“实现定制的URL模式”部分中进行描述。有关系统支持的URL处理,包括如何处理URL的格式,请参见苹果的URL模式参考。
    实现定制的URL模式

    您可以为自己的应用程序注册包含定制模式的URL类型。定制的URL模式是第三方应用程序和其它程序及系统进行交互的机制。通过定制的URL模式,应用程序可以将自己的服务提供给其它程序。
    注册定制的URL模式

    在为您的应用程序注册URL类型时,必须指定CFBundleURLTypes属性的子属性,我们已经在“信息属性列表”部分中介绍过这个属性了。CFBundleURLTypes属性是应用程序的Info.plist文件中的一个字典数组,每个字典负责定义一个应用程序支持的URL类型。表1-6描述了CFBundleURLTypes字典的键和值。
    表1-6 CFBundleURLTypes属性的键和值

    CFBundleURLName

    这是个字符串,表示URL类型的抽象名。为了确保其唯一性,建议您使用反向DNS风格的标识,比如com.acme.myscheme。

    这里提供的URL类型名是一个指向本地化字符串的键,该字符串位于本地化语言包子目录中的InfoPlist.strings文件中。本地化字符串是人类可识别的URL类型名称,用相应的语言来表示。

    CFBundleURLSchemes

    这是个URL模式的数组,表示归属于这个URL类型的URL。每个模式都是一个字符串。属于指定URL类型的URL都带有它们的模式组件。

    图1-7显示了一个正在用内置的Xcode编辑器编辑的Info.plist文件。在这个图中,左列中的URL类型入口相当于您直接加入到Info.plist文件的CFBundleURLTypes键。类似地,“URL identifier”和“URL Schemes”入口相当于CFBundleURLName和CFBundleURLSchemes键。

    图1-7 在Info.plist文件中定义一个定制的URL模式
    Defining a custom URL scheme in the Info.plist file

    您在对CFBundleURLTypes属性进行定义,从而注册带有定制模式的URL类型之后,可以通过下面的方式来进行测试:

    连编、安装、和运行您的应用程序。
    
    回到Home屏幕,启动Safari(在iPhone仿真器上,在菜单上选择Hardware > Home命令就可以回到Home屏幕)。
    
    在Safari的地址栏中,键入使用定制模式的URL。
    
    确认您的应用程序是否启动,以及应用程序委托是否收到application:handleOpenURL:消息。 
    

    处理URL请求

    应用程序委托在application:handleOpenURL:方法中处理传递给应用程序的URL请求。如果您已经为自己的应用程序注册了定制的URL模式,则务必在委托中实现这个方法。

    基于定制模式的URL采用的协议是请求服务的应用程序能够理解的。URL中包含一些注册模式的应用程序期望得到的信息,这些信息是该程序在处理或响应URL请求时需要的。传递给application:handleOpenURL:方法的NSURL对象表示的是Cocoa Touch框架中的URL。NSURL遵循RFC 1808规范,该类中包含一些方法,用于返回RFC 1808定义的各个URL要素,包括用户名、密码、请求、片断、和参数字符串。与您注册的定制模式相对应的“协议”可以使用这些URL要素来传递各种信息。

    在程序清单1-2显示的application:handleOpenURL:方法实现中,传入的URL对象在其请求和片断部分带有具体应用程序的信息。应用程序委托抽出这些信息—在这个例子中,是指一个to-do任务的名称和到期日—并根据这些信息创建应用程序的模型对象。

    程序清单1-2 处理基于定制模式的URL请求
    [cpp] view plaincopy

    - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {  
    
        if ([[url scheme] isEqualToString:@"todolist"]) {  
    
            ToDoItem *item = [[ToDoItem alloc] init];  
    
            NSString *taskName = [url query];  
    
            if (!taskName || ![self isValidTaskString:taskName]) { // must have a task name  
    
                [item release];  
    
                return NO;  
    
            }  
    
            taskName = [taskName stringByReplacingPercentEscapesUsingEncoding:NSUTF8StringEncoding];  
    
    
    
            item.toDoTask = taskName;  
    
            NSString *dateString = [url fragment];  
    
            if (!dateString || [dateString isEqualToString:@"today"]) {  
    
                item.dateDue = [NSDate date];  
    
            } else {  
    
                if (![self isValidDateString:dateString]) {  
    
                    [item release];  
    
                    return NO;  
    
                }  
    
                // format: yyyymmddhhmm (24-hour clock)  
    
                NSString *curStr = [dateString substringWithRange:NSMakeRange(0, 4)];  
    
                NSInteger yeardigit = [curStr integerValue];  
    
                curStr = [dateString substringWithRange:NSMakeRange(4, 2)];  
    
                NSInteger monthdigit = [curStr integerValue];  
    
                curStr = [dateString substringWithRange:NSMakeRange(6, 2)];  
    
                NSInteger daydigit = [curStr integerValue];  
    
                curStr = [dateString substringWithRange:NSMakeRange(8, 2)];  
    
                NSInteger hourdigit = [curStr integerValue];  
    
                curStr = [dateString substringWithRange:NSMakeRange(10, 2)];  
    
                NSInteger minutedigit = [curStr integerValue];  
    
    
    
                NSDateComponents *dateComps = [[NSDateComponents alloc] init];  
    
                [dateComps setYear:yeardigit];  
    
                [dateComps setMonth:monthdigit];  
    
                [dateComps setDay:daydigit];  
    
                [dateComps setHour:hourdigit];  
    
                [dateComps setMinute:minutedigit];  
    
                NSCalendar *calendar = [NSCalendar currentCalendar];  
    
                NSDate *itemDate = [calendar dateFromComponents:dateComps];  
    
                if (!itemDate) {  
    
                    [dateComps release];  
    
                    [item release];  
    
                    return NO;  
    
                }  
    
                item.dateDue = itemDate;  
    
                [dateComps release];  
    
            }  
    
    
    
            [(NSMutableArray *)self.list addObject:item];  
    
            [item release];  
    
            return YES;  
    
        }  
    
        return NO;  
    
    }  
    

    请务必对传入的URL输入进行验证。如果您希望了解如何避免URL处理的相关问题,请参见安全编码指南文档中的验证输入部分。如果要了解苹果定义的URL模式,请参见苹果的URL模式参考

    展开全文
  • 1.这里我随便找一个应用程序举例,右击打开软件“属性”,复制 “目标路径” 2.点击电脑界面的 “开始” 3.输入“regedit”,并点击"regedit.exe"运行 4.选择 “HKEY_CLASSES_ROOT” 5.选择“Applications” 6....

    原因:
    可能是你移动了程序,导致程序路径和注册表路径不一致!
    解决方法:
    1.这里我随便找一个应用程序举例,右击打开软件“属性”,复制 “目标路径”
    在这里插入图片描述
    2.点击电脑界面的 “开始”
    在这里插入图片描述
    3.输入“regedit”,并点击"regedit.exe"运行
    在这里插入图片描述
    4.选择 “HKEY_CLASSES_ROOT”
    在这里插入图片描述
    5.选择“Applications”
    在这里插入图片描述
    6.找到那个应用程序,点击默认弹出窗口,把那个路径转化为第 1 步复制的路径
    在这里插入图片描述
    在这里插入图片描述
    7.然后建一个对应文件,右击选择 “打开方式”里面就有啦
    在这里插入图片描述

    展开全文
  • Android 打开其他应用app的两种方式

    千次阅读 2016-11-04 16:27:53
    Android 打开其他应用app的两种方式
    打开其他应用app的前提是需要知道包名,知道包名后打开应用就不是难事了,直接上图....

    // 查询指定包名信息,如打开QQ,包名:
    String qqPackageName = "com.tencent.mobileqq";
    // 查询指定包名信息,如打开微信,包名:
    String wxPackageName = "com.tencent.mm";
    //百度地图包名
    String bdPackageName = "com.baidu.BaiduMap";
    String appName = wxPackageName;
    第一种方式,直接启动,反应有点慢:
    		ackageManager manager = getPackageManager();
    		Intent launchIntentForPackage = manager.getLaunchIntentForPackage(appName);
    		startActivity(launchIntentForPackage);
    第二种方式,直接启动,速度相当给力:
    public void openActivity(View view) {
        // 获取包管理器
        PackageManager manager = getPackageManager();
        // 指定入口,启动类型,包名
        Intent intent = new Intent(Intent.ACTION_MAIN);//入口Main
        intent.addCategory(Intent.CATEGORY_LAUNCHER);// 启动LAUNCHER,MainActivity里面的配置类似
        intent.setPackage(appName);//包名
        //查询要启动的Activity
        List<ResolveInfo> apps = manager.queryIntentActivities(intent, 0);
        if (apps.size() > 0) {//如果包名存在
            ResolveInfo ri = apps.get(0);
            // //获取包名
            String packageName = ri.activityInfo.packageName;
            //获取app启动类型
            String className = ri.activityInfo.name;
            //组装包名和类名
            ComponentName cn = new ComponentName(packageName, className);
            //设置给Intent
            intent.setComponent(cn);
            //根据包名类型打开Activity
            startActivity(intent);
        } else {
            Toast.makeText(this, "找不到包名;" + appName, Toast.LENGTH_SHORT).show();
        }
    }


    展开全文
  • 打开方式,选择默认程序,本人手贱乱点了个IE浏览器程序,然后悲剧了,所以的应用程序.exe都变成了IE图标的,每打开一个应用程序都以IE浏览器打开,浏览器无限跳出,使用安全工具也不行,因为像360也是应用程序,以...
  • Android 调用系统应用打开自定义后缀文件 只需要在AndroidManifest.xml中配置如下代码即可 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name=...
  • 一,打开设置各项 5.0+后可在代码中调用如下代码打开设置相应界面: NSURL*url=[NSURL URLWithString:@"command stringI"]; [[UIApplication sharedApplication] openURL:url]; 即可跳转到设置页面的对应项:command ...
  • 一般这种情况百是安全卫士自带的软件管家的原因,比度如腾讯的电脑管家-软件管理,打开以后选择“设知置” 选择“其他设置”,把...再右键选择打开方式,就会出现了。其他软件管家也有类似设置,取消就可以了 ...
  • 比如.php类型的文件(文中以下均以.php类型文件为例),我想让系统默认用EditPlus软件打开,但设置后你会发现php类型的文档图标并没有发生变化,一般来说设置好某个类型文件的打开方式后文件的图标会自动变为与相应...
  • 一、问题: 当电脑同时装有微软的office/wps以及其他的office办公软件,当需要以固定的软件打开文档或者表格怎么去修改?...PS:右击以打开的方式打开,下次打开还会是上次的打开方式。 二、解决办法: ...
  • ubuntu 20.04设置应用桌面快捷方式 1.首先找到所对应的桌面快捷方式文件 2. 把桌面这个桌面快捷方式复制到桌面上 3.鼠标右键点击选择允许启动后变成图标 4.这样的图标还是不怎么好看,可以加上应用程序自带的图标用...
  • 最近新装了系统,但是设置txt的默认打开方式为notepad++总是无效,每次都要选择。对于习惯了notepad++的我来说,真心不能容忍,尝试了各种方法以后,终于找到解决方法。 1、找到notepad++的安装目录,右键notepad++...
  • Android应用内用其他应用打开文档

    千次阅读 2018-08-17 13:54:17
    打开文档 private void openFile(File file) { try { Log.e(&quot;文件名&quot;, file.getName()); Intent intent = new Intent(); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);...
  • 像百度网盘等应用,里面的文件打开时,都可以通过以下应用打开文件。下面红色框框内的我的jpg就是我做的一个例子。因为例子没有提供Icon,所以显示的是默认icon。 下面就是这例子的主要步骤和代码。 ...
  • 设置某格式打开方式是如下://该经验是设置将图片管理器设置可以打开.gif后缀文件,其它文件格式可以依次类推首先我们按win+r键打开运行窗口如下:然后我们打开注册表编辑器,在运行窗口中输入regedit点击确认,具体...
  • 如何设置Adobe Acrobat DC为pdf的默认打开方式 首先我们找到要打开的PDF文件--------> 右键pdf文件--------> 打开方式--------->选择其他应用 选择其他应用后就会弹出如下图的窗口:然后选择***Adobe ...
  • Android使用其他应用打开文件

    万次阅读 2018-08-13 10:58:32
    public class MapTable { /** * -- MIME 列表 -- */ public static final String[][] MIME_MapTable = { // --{后缀名, MIME类型} -- {&amp;amp;quot;.3gp&amp;amp;quot;, &...}
  • 古老的 Win32 应用启动其他程序太过方便,以至于一部分开发者都已经不记得 Windows 能通过关联协议的方式通过统一资源定位符(URI)来启动应用程序了。转到 UWP 后,使用 URI 启动应用似乎成为了最推荐的方式。于是...
  • 方法一: App.xaml xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="mytest.App" Startup=
  • 有时候,我们开发的app需要支持打开某些文件,如何才能使得打开文件时系统能把我们开发的app列出来呢? 例如, 1.我开发了一个浏览器,那用户点击链接选择浏览器打开时,怎么关联上我们app可供选择 2.有时候我们...
  • 尝试各种不同的方式打开设置: 单击开始菜单并选择 设置 单击开始菜单,键入 设置 并从列表中选择该项 右键单击开始图标并从菜单中选择 设置 同时按 Windows和I键 同时按 Windows和R键 ...
  • Android中打开其他应用程序的组件

    千次阅读 2014-03-03 15:01:49
    背景:有时候我们需要在自己的应用中去打开其他应用程序的Activity或者Service ,下面是通过两种方式打开 ,为什么是两种方式呢? 我们本来可以直接开启其他应用程序的,为什么要在转个弯通过广播去开启,答案很简单...
  • Access无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开 参考百度信息,可以点上图中的高级,在新弹出的对话框中设置数据库密码: 设置完成后记得将图1中的密码清除,就OK了。
  • 像百度网盘等应用,里面的文件打开时,都可以通过以下应用打开文件。下面红色框框内的我的jpg就是我做的一个例子。因为例子没有提供Icon,所以显示的是默认icon。 下面就是这例子的主要步骤和代码。 ...
  • 选中文件后右键选择打开方式,出现错误:该文件没有与之关联的应用来执行此操作。请安装应用,请在“默认应用设置”页面中创建关联。 为了解决这个问题,把网上的方法都试了一遍,在快要放弃的时候找到了这个方法...
  • 问题: ...选择一个文档-》右键选择打开方式-》选择其他应用-》选择wps同时勾选下面的默认 总结: 默认使用wps(因为自己平时不常用PPT,所以使用文档和表格使用wps查改比较方便)    
  • 工作组信息文件丢失,或是已被其它用户以独占方式打开。 看了下面文章找到了解决办法: 链接服务器属性 -- 安全性 -- 把已创建的映射关系后面的 模拟 勾选 去掉,填个远程用户名字填 Admin, 空密码 就可以了 ...
  • Android调用系统应用打开各种类型文件
  • MacOS 开发 — 网页打开本地应用

    千次阅读 2019-02-24 18:17:22
    URL scheme 的好处就是,你可以在其它程序中通过这个url打开应用程序。如A应用程序注册了一个url scheme:myApp, 那么就在mobile浏览器中就可以通过&lt;href=’myApp://’&gt;打开你的应用程序A。 Android ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 614,598
精华内容 245,839
关键字:

怎么设置其他应用打开方式