かの設定ココアの応用としてデフォルトのwebブラウザです。

StackOverflow https://stackoverflow.com/questions/49510

  •  09-06-2019
  •  | 
  •  

質問

かの設定ココアの応用としてデフォルトのwebブラウザです。

をしたいと思っているアプリケーションを開始した場合、デフォルトのユーザーがクリック、HTTPやHTTPSクを他のアプリケーション(メール、iChatます。

役に立ちましたか?

解決

が手作りのアプリとなるようなデフォルトのwebブラウザです。第三段ができるようにアプリとしての役割をハンドラに関連するURLスキーム(HTTPやHTTPS)は、最後のステップでデフォルトの役割のハンドラ方制度について

1)追加のURLスキームのおか扱えないアプリケーションの中から必要なものを選んで使用。plistファイル

追加の支援 http://https:// んを追加する必要がある以下の中から必要なものを選んで使用。plistファイルです。これはOSる申請に対応できるHTTPおよびHTTP Urlに対するものとなります。

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>http URL</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>http</string>
        </array>
    </dict>
    <dict>
        <key>CFBundleURLName</key>
        <string>Secure http URL</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>https</string>
        </array>
    </dict>
</array>

2)記URLハンドラ方式

このメソッドによって呼び出され、OSをしたい場合には利用申込を開りましたが、修正いたしました。なるオブジェクトを追加したりする方法とする明示的に渡されるイベントマネージャーの次のステップです。のURLハンドラ方法はこのようになります:

- (void)getUrl:(NSAppleEventDescriptor *)event 
    withReplyEvent:(NSAppleEventDescriptor *)replyEvent
{
  // Get the URL
  NSString *urlStr = [[event paramDescriptorForKeyword:keyDirectObject] 
    stringValue];

  //TODO: Your custom URL handling code here
}

3)URLを登録しハンドラ方式

次に、伝えるイベント管するオブジェクトの方法を話したい場合にはご利用のアプリを負荷する。のコード私はこれに渡され self としてのイベントハンドラと呼んでいるんだけど setEventHandler 同じオブジェクトを定義する getUrl:withReplyEvent: 方法。

を追加してくださいこのコードのどこかでアプリケーションのトの再計算コードです。

NSAppleEventManager *em = [NSAppleEventManager sharedAppleEventManager];
[em 
  setEventHandler:self 
  andSelector:@selector(getUrl:withReplyEvent:) 
  forEventClass:kInternetEventClass 
  andEventID:kAEGetURL];

一部の用途を含め、前のバージョンのAdobe AIRの代替WWW!/OURL AppleEventを求めることをアプリケーションがオープンのUrlでの対応によりアプリケーションにも以下の変数を追加します:

[em
  setEventHandler:self 
  andSelector:@selector(getUrl:withReplyEvent:) 
  forEventClass:'WWW!' 
  andEventID:'OURL'];

4)設定アプリとしてデフォルトのブラウザ

まっついてのOSと申 ブラウザ, 今後は、をしないようにする必要もあり デフォルトのブラウザ.

私たちの利用には打上げ輸送サービスのAPIではないかと思います。この場合におい設定に当社アプリのデフォルトの役割のためのハンドラはHTTPおよびHTTPSにリンク:

CFStringRef bundleID = (CFStringRef)[[NSBundle mainBundle] bundleIdentifier];
OSStatus httpResult = LSSetDefaultHandlerForURLScheme(CFSTR("http"), bundleID);
OSStatus httpsResult = LSSetDefaultHandlerForURLScheme(CFSTR("https"), bundleID);
//TODO: Check httpResult and httpsResult for errors

(あるんじゃないでしょうかを、ユーザーの許可を変化させる前に、そのデフォルトのブラウザ.)

カスタムのURLスキーム

このことは特筆に値することができます同じ手順で取り扱およびユーザーインターフェイスURLする仕組みである。いをカスタムのURLスキームで良いアイデアを拠点でアプリのバンドルの識別子を衝突を避けるその他のアプリとなります。シンプルなバンドルID com.example.MyApp を使うことを検討すべき x-com-example-myapp:// Urlに対するものとなります。

他のヒント

また変化は、デフォルトのヘルパーアプリからhttp(s)必要はありませんのサファリです。まだ下がるごとすべて選択登録のハンドラ用のためのhttp.を自動的にアプリの設定としてデフォルトのブラウザの確認ください。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top