urlリンクで自分のappにジャンプ

1557 ワード

会社は1つのプッシュメールを通じて、ユーザーはメールの上のリンクをクリックして私达のappの上でジャンプして、実はネット上で多くの教程があって、多くのフレームワークがあって、自分でここで1つの比较的に简単な方法を书いて、この机能を実现することができて、みんなを助けることができることを望みます!
まずURL Schemeの役割についてお話しします
アップルの携帯電話のアプリには砂箱があることはよく知られています.アプリは情報孤島で、互いに通信できません.しかしiOSのアプリは自分のURL Schemeを登録することができ、URL Schemeはapp間の相互呼び出しを容易にするために設計されています.システムのOpenURLでappを開くことができ、いくつかのパラメータを渡すことができます.
例えば、Safariにwww.alipayと入力します.comは、あなたの支付宝アプリを直接開くことができます.前提はあなたの携帯電話に支付宝が入っていることです.アリペイがインストールされていない場合は、アリペイのダウンロード画面が表示され、クリックするとAppStoreのアリペイのダウンロード画面にジャンプします.
URL Schemeはアプリを一意に識別する必要があります.もしあなたが設定したURL Schemeが他のアプリのURL Schemeと衝突した場合、あなたのアプリは必ずしも起動されるとは限りません.アプリがインストールされている間に、システムにURL Schemeが登録されているからです.
一般的には、先にインストールしたappが呼び出されます.しかしiOSのシステムアプリのURL Schemeは最高に違いない.URL Schemeを定義するときは、システムappで定義されているURL Schemeをできるだけ避けます.
URL Schemeの登録
1.info.plistにURL typesを追加
各プロジェクトにはinfoがあります.plistプロファイル.infoが見つかりました.plist、右クリックでAdd Rowを選択し、URL typesを選択します.図に示すように、
これでメモ帳やSafariにリンクを入力できました.例えばtestHello://machao/1/xxx このリンクをクリックすると私たちのプログラムが起動し、対応するコンテンツを解析して対応するインタフェースにジャンプするにはAppdelegateの-(BOOL)アプリケーション:openURL:options:の方法で入力したurlリンクの後ろのパラメータを判断し、異なる操作を行うだけでよい
 if ([urlStr hasPrefix:@"testHello"]){
      NSArray *array = [urlStr componentsSeparatedByString:@"/"];
    NSLog(@"%@",array);
 if ([array[3] isEqualToString:@"1"]) {
        [[NSNotificationCenter defaultCenter] postNotificationName:@"selectIndexpath" object:nil userInfo:@{@"select":array[3]}];
  }
}