4

サファリのリンクからネイティブiPhoneアプリケーションを開こうとしています。このリンクをたどってURLスキーマを作成しました。URLスキーマとしてURLスキーマを追加appgo://し、URLタイプの下に識別子としてcom.xxxx.appgoを追加しました。以下は、safariのWebページにある私のリンクです。iPhoneアプリを開くしかし、リンクをクリックしてもアプリが開かず、safariはエラー付きのアラートを生成します。アドレスが無効であるため、Safariはページに入ることができません。

私のバンドル識別子:com.xxxxx.abc注:私のバンドル識別子は、URLタイプの識別子とは異なります。それが問題になる可能性はありますか?

編集: バンドル識別子とURL識別子を同じにしました。また、アプリデリゲートに次のコードを追加しました。

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url{
NSLog(@"application");
BOOL returnValue = NO;
NSString *urlString = [url absoluteString];
if([urlString hasPrefix:@"com.xxxx.appgo"]){
    returnValue = YES;
}
return returnValue;

}

iPadでテストしています。最初にxcodeから最新バージョンのアプリをインストールし、次にホームボタンを押して、Safariでリンクを開きます。しかし、アドレスが無効であるため、Safariがページに入ることができないというアラートがまだ表示されます。サファリでの私のリンク:

<a href="appgo://">Open iPhone App</a>
4

2 に答える 2

5

アプリデリゲートに実装する

    - (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
        BOOL returnValue = NO;
        NSString *urlString = [url absoluteString];
        if([urlString hasPrefix:@"appgo://"]){  
             returnValue = YES;
        }
       return returnValue;
    }

編集:info.plistファイルを追加します

<key>CFBundleURLTypes</key>
    <array>
        <dict>
            <key>CFBundleURLName</key>
            <string>com.xxxx.appgo</string>
            <key>CFBundleURLSchemes</key>
            <array>
                <string>appgo</string>
                <string>yourSecondScheme</string>
            </array>
        </dict>
    </array>
于 2013-03-25T08:47:32.970 に答える
0

はい。バンドル識別子は、plisファイルのURLタイプと同じである必要があります。

詳細については、このリンクを参照してください。

于 2013-03-25T08:33:57.630 に答える