2012-02-22 23 views
2

カスタムプロトコルハンドラを使用してアプリケーションを開くウェブページがあります。 1つは、Picupアプリをダウンロードする人のためのiTunes Storeアプリにリンクし、もう1つはfileupload://にリンクしてPicupアプリを開きます。iPhoneの埋め込みブラウザでWebページが実行されているかどうかを検出するにはどうすればよいですか?

他のアプリ(たとえば1Stepスキャナーのバーコードスキャナ)に埋め込まれたSafariにページを読み込んだときに、カスタムプロトコルに移動すると、「エラー、ウェブページの読み込みに失敗しました!再度お試しください。

JavaScriptを使用して、埋め込みブラウザ内にWebページが読み込まれているかどうかを検出し、Safariを使用するようにメッセージを表示します。

一つの方法は、ユーザーエージェント文字列を検出する

Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Mobile/9A405 

埋め込み

あるサファリ

Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3 

しかし、ユーザエージェントストリング内のワードサファリの存在/不在を検出していますすべてのバージョンのiPhoneに適用できますか?もっと簡単な方法がありますか?

+0

これは簡単に偽装されていることを告げる必要があります。ユーザーがイルカなどの別のブラウザや別のブラウザを使用している場合は、その機能を起動するオプションを与える必要があります。 – AlfredoVR

答えて

1

はどうやらそう、それが最善の方法です。

iOS用のChromeでも、Safariという単語がリクエストに含まれているので、「Safari」のないiOsからのリクエストは、埋め込まれたUiWebKitコントロールからのものであると仮定しても問題ありません。

0

あなたはあなたの要求のためのカスタムのUser-Agentを設定することができます...ここでは例です:

NSString *urlString= @"http://www.google.com"; 
NSURL *url = [NSURL urlString]; 
NSMutableURLRequest *requestObj = [NSMutableURLRequest requestWithURL:url]; 
[requestObj setValue:@"myCustomAgent_Mathboy:)/1.0" forHTTPHeaderField:@"User_Agent"]; 
[webView loadRequest:requestObj]; 
+0

私が持っているのはウェブページであり、iPhoneアプリではありません。ユーザーがモバイルSafariまたは別のアプリで自分のウェブページにアクセスしているかどうかを検出する必要があります –

+0

質問はありませんでした。ごめんなさい – Ashraf

関連する問題