iOS 9에서 URL SCHEMPH로 Instagram 앱을 열지 않음
다음 URL은 iOS 8.3 이하에서 열리지만 작동하지 않고 iOS 9
let instagramURL = NSURL(string: "instagram://app")
URL이 열리지 않는 이유는 무엇입니까?
스킴 .iOS 9는 URL 스킴 처리에 약간의 변경을 가했습니다.당신은 의 앱이 을 사용하여 로 만들어야 .LSApplicationQueriesSchemes
당신의 키력을 하세요.Info.plist
.
여기 게시물을 참조하십시오. http://awkwardhare.com/post/121196006730/quick-take-on-ios-9-url-scheme-changes
주요 결론은 다음과 같습니다.
화이트리스트에 없는 URL에서 "canOpenURL" 메서드를 호출하면 이 스킴을 처리하도록 등록된 앱이 설치되어 있더라도 "아니오"를 반환합니다."이 앱은 xxx 구성표에 대해 쿼리할 수 없습니다." syslog 항목이 나타납니다.
화이트리스트에 없는 URL에서 "openURL" 메서드를 호출하면 자동으로 실패합니다."이 앱은 xxx 구성표에 대해 쿼리할 수 없습니다." syslog 항목이 나타납니다.
저자는 또한 이것이 OS의 버그이며 애플이 후속 릴리스에서 이를 수정할 것이라고 추측합니다.
위에서 말한 것처럼, 당신은 인포리스트에 키를 추가하고 싶습니다. 여기 대부분의 소셜 네트워크에 대한 목록이 있습니다.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fb</string>
<string>fbapi</string>
<string>fbauth2</string>
<string>fbshareextension</string>
<string>fb-messenger-api</string>
<string>twitter</string>
<string>viber</string>
<string>whatsapp</string>
<string>wechat</string>
<string>line</string>
<string>instagram</string>
<string> instagram-stories</string>
<string>kakaotalk</string>
<string>mqq</string>
<string>vk</string>
<string>comgooglemaps</string>
<string>googlephotos</string>
<string>ha</string>
<string>yammer</string>
</array>
fbapi, fbauth2, fbshare 확장의 Facebook(FBSDK 4.6)과 처음 3가지 일치합니다."하"는 스냅챗을 위한 것입니다.
iOS 9의 새로운 보안 기능입니다. 자세한 내용은 WWDC 2015 Session 703을 참조하십시오.
은 SDK 9를 .LSApplicationQueriesSchemes
쿼리하려는 구성표를 선언하는 항목입니다.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>urlscheme</string>
<string>urlscheme2</string>
<string>urlscheme3</string>
<string>urlscheme4</string>
</array>
테스트 A와 테스트 B 두 앱을 가정합니다.테스트 B에서 테스트 A가 설치되어 있는지 쿼리하려고 합니다."TestA"는 info.plist 파일에서 다음 URL 체계를 정의합니다.
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>testA</string>
</array>
</dict>
</array>
두 번째 앱 "테스트 B"는 다음을 호출하여 "테스트 A"가 설치되어 있는지 확인합니다.
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"TestA://"]];
그러나 "TestA"를 TestB의 info.plist 파일에 있는 LSAapplicationQuerySches 항목에 추가해야 하기 때문에 일반적으로 iOS9에서 NO를 반환합니다.이 작업은 TestB의 info.plist 파일에 다음 코드를 추가하여 수행합니다.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>TestA</string>
</array>
실행 중인 구현은 https://github.com/gatzsche/LSApplicationQueriesSchemes-Working-Example 에서 확인할 수 있습니다.
시작, 세션 703 WWDC 2015:
사용할 수 . 앱plist해야 합니다.OS 9용 앱을 구축할 때 URL 체계를 계속 사용할 수 있으며 URL 체계를 호출하려면 앱 Info.plist에서 선언해야 합니다.새로운 열쇠가 있습니다.
LSApplicationQueriesSchemes
이 되고 싶은 .vmdk URL.
공유 대화 상자의 Facebook 공유는 @Mathieu 답변(나머지 소셜 URL에 대해 100% 정확함)에도 실패합니다.나는 페이스북 SDK에서 반대로 URL 세트를 추가해야 했습니다.
<array>
<string>fbapi</string>
<string>fbauth2</string>
<string>fbshareextension</string>
<string>fb-messenger-api</string>
<string>twitter</string>
<string>whatsapp</string>
<string>wechat</string>
<string>line</string>
<string>instagram</string>
<string>kakaotalk</string>
<string>mqq</string>
<string>vk</string>
<string>comgooglemaps</string>
<string>fbapi20130214</string>
<string>fbapi20130410</string>
<string>fbapi20130702</string>
<string>fbapi20131010</string>
<string>fbapi20131219</string>
<string>fbapi20140410</string>
<string>fbapi20140116</string>
<string>fbapi20150313</string>
<string>fbapi20150629</string>
</array>
Swift 4.2 및 Xcode 10.1에서
info.plist에서 CFBundle을 추가해야 합니다.URL 스키마 및 LSA ApplicationQueryScheme.
--> 프로젝트에서 info.plist를 선택합니다.
--> 오른쪽 클릭,
--> 소스 코드로 열기 선택
아래 스크린샷 참조
--> xml 파일이 열립니다.
--> 복사 - 아래 코드를 붙여넣고 ID로 대체합니다.
CF 번들gmail, fb, twitter 및 linked in을 위한 URL 스키마 및 LSA ApplicationQueryScheme.
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLSchemes</key>
<array>
<string>li5****5</string>
<string>com.googleusercontent.apps.8***************5f</string>
<string>fb8***********3</string>
<string>twitterkit-s***************w</string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>8*********3</string>
<key>FacebookDisplayName</key>
<string>K************ app</string>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>fbapi</string>
<string>fb-messenger-share-api</string>
<string>fbauth2</string>
<string>fbshareextension</string>
<string>twitter</string>
<string>twitterauth</string>
<string>linkedin</string>
<string>linkedin-sdk2</string>
<string>linkedin-sdk</string>
</array>
아래 화면을 참조하십시오. 당신의 최종 info.plist 파일은
9.0.x에서 url 체계를 깬 탈옥된 전화기의 버그가 있었다는 것에 주목하는 것이 중요합니다.감옥에서 고장난 장치를 실행하고 있다면 Cydia에서 Patcyh를 업데이트해야 합니다.
전화를 하면 앱을 열 수 있습니다.openURL:
또는openURL:options:completionHandler:
이상) 확인 (iOS 10 이상) 조건확인없이직가능사용접부이상▁(▁without가능▁directly▁(▁making사용.canOpenURL:
canOpen에 대한 Apple 문서의 토론 섹션을 읽어보십시오.URL: 다음과 같은 방법:
는 다음 URL에 .
LSApplicationQueriesSchemes
필요.
내장된 매개 변수로 URL을 지정하는 방법을 설명한 사람은 아무도 없는 것 같습니다.LSA 응용 프로그램에서 특정 URL을 지정할 수 없는 매개 변수가 포함된 URL스키마를 쿼리합니다.예를 들어 보낸 사람의 전자 메일 주소를 전달하는 전자 메일 앱이 있다고 가정합니다.
myemail://mailto?bob@gmail.com
iOS9에서 작동할 수 있는 유일한 방법은 매개 변수를 제거하는 것입니다.
Apple이 캔오픈을 변경했습니다.iOS 9의 URL 메서드입니다. iOS 9 및 iOS 10의 URL 스킴을 확인하는 앱은 Apple에 제출할 때 이 스킴을 선언해야 합니다.
PayPal의 경우 아래 URL 체계를 추가합니다.
이 링크 참조
스위프트 3.1, 스위프트 3.2, 스위프트 4
if let urlFromStr = URL(string: "instagram://app") {
if UIApplication.shared.canOpenURL(urlFromStr) {
if #available(iOS 10.0, *) {
UIApplication.shared.open(urlFromStr, options: [:], completionHandler: nil)
} else {
UIApplication.shared.openURL(urlFromStr)
}
}
}
Info.plist에서 다음을 추가합니다.
<key>LSApplicationQueriesSchemes</key>
<array>
<string>instagram</string>
</array>
제가 오늘 제 앱에서 페이스북에 전화를 하려고 했을 때, 저는 그것이 없다는 것을 발견했습니다.LSApplicationQueriesSchemes
▁i에 할 수 입니다.Info.plist
(Xcode § 8.2.1(8C1002)).는 제가열요어었▁the▁opened를 열었습니다.Info.plist
Sublime Text를 사용하여 수동으로 파일에 추가한 다음 작동했습니다.키를 찾을 수 없는 경우 직접 추가하십시오.
언급URL : https://stackoverflow.com/questions/30987986/ios-9-not-opening-instagram-app-with-url-scheme
'programing' 카테고리의 다른 글
MongoDB 업데이트 조건 (0) | 2023.05.11 |
---|---|
SQL Server 복제 프로젝트에서 "잘못된 형식의 프로그램을 로드하려고 했습니다" 오류가 발생함 (0) | 2023.05.11 |
WPF 그리드에서 하위 컨트롤 사이의 간격 (0) | 2023.05.06 |
다른 모든 컨트롤보다 오버레이 컨트롤을 우선시하는 방법은 무엇입니까? (0) | 2023.05.06 |
유형 오류: 'zip' 개체를 구독할 수 없습니다. (0) | 2023.05.06 |