この問題について助けが必要です。
私のアプリケーションには、他のユーザーとリンクを共有する機能があります。次のことを行う必要があります。
- Safari ブラウザで任意のリンクを開く
- アプリケーションでそのリンクを共有するために、サファリブラウザで直接何らかのアクションを実行します。
iOS で、ブラウザからアプリへのリンクを直接共有することは可能ですか。
これについて助けが必要です。
よろしく。
iOS 8 以降、Share App Extensionを使用すると、このタスクを達成できます
共有拡張アプリを作成することで、なんとかそれを行うことができました(ファイル->新規->ターゲット->アプリケーション拡張)
次に、Targets->Info から、Web URL のサポートを指定しました
次に、アプリ拡張機能で元のアプリ ファイルを使用する方法を探すのに時間を費やしました。この投稿は、元の iOS アプリとアプリ拡張機能の間でコードを共有するのに大いに役立ちました。
ココアポッドを使用している場合、これも役立ちますhttps://stackoverflow.com/a/31989172/3033056ただし、すべてのポッドがアプリ拡張機能で使用できるわけではないことに注意してください
これはチュートリアルのリンクですhttp://www.appcoda.com/ios8-share-extension-swift/
iOS カスタム URL スキーム:
HTML の例:
<p>Run the app<a href='BundleURLSchemes://BundleURLName?param=1'>iPhone/iPad</a></p>
CFBundleURLSchemes
- URL スキーム名 (http、mailto、tel、sms など) を含む文字列の配列。
BundleURLName
- URL スキームの抽象名を含む文字列。一意性を確保するために、com.acme.myscheme などのリバース DNS スタイルの識別子を指定することをお勧めします。指定した文字列は、アプリの InfoPlist.strings ファイルでもキーとして使用されます。キーの値は、人間が判読できるスキーム名です。
Apple のドキュメント経由: カスタム URL スキームの実装
アプリが特別な形式の URL を受信できる場合は、対応する URL スキームをシステムに登録する必要があります。customURL スキームは、サードパーティのアプリが相互に通信できるメカニズムです。アプリは多くの場合、カスタム URL スキームを使用してサービスを他のアプリに提供します。たとえば、マップ アプリは、特定のマップの場所を表示するための URL をサポートしています。
カスタム URL スキームの登録
アプリの URL タイプを登録するには、アプリのファイルにCFBundleURLTypes
キーを含めます。Info.plist
キーには、アプリがサポートする URL スキームを定義する辞書のCFBundleURLTypes
配列が含まれています。
AppDelegate で:
- (BOOL)application:(UIApplication *)application
openURL:(NSURL *)url
sourceApplication:(NSString *)sourceApplication
annotation:(id)annotation {
NSString *query = [url query];
// NSLog(@"query->%@",query);//param=1
// NSLog(@"host->%@",host);//BundleURLName
// NSLog(@"resourceSpecifier->%@",resourceSpecifier);//BundleURLName?param=1
if(![[url scheme] isEqualToString:@"BundleURLSchemes"])
return NO;
else{
NSArray* paramsData =[query componentsSeparatedByString:@"="];
NSLog(@"param->%@", paramsData[1]);
}
return YES;
}
これは実際に URL スキーム http://mobile.tutsplus.com/tutorials/iphone/ios-sdk-working-with-url-schemes/を使用して可能です