SwiftUIでWikipediaに飛ぶURLを実装し、アプリから実際にWikipediaに飛ぶようにしたい。
SwiftUIで果物図鑑アプリを作っています。
Wikipediaに飛ぶURLを実装中に以下のエラーメッセージが発生しました。
Fructus[34533:760476] [default] Failed to open URL https//wikipedia.com: Error Domain=NSOSStatusErrorDomain Code=-50 "invalid input parameters" UserInfo={NSDebugDescription=invalid input parameters, _LSLine=230, _LSFunction=-[_LSDOpenClient openURL:options:completionHandler:]}
実現したいこと
- SwiftUIでWikipediaに飛ぶURLを実装し、アプリから実際にWikipediaに飛ぶようにしたい。
発生している問題・エラーメッセージ
Fructus[34533:760476] [default] Failed to open URL https//wikipedia.com: Error Domain=NSOSStatusErrorDomain Code=-50 "invalid input parameters" UserInfo={NSDebugDescription=invalid input parameters, _LSLine=230, _LSFunction=-[_LSDOpenClient openURL:options:completionHandler:]}
該当のソースコード
SourceLinkView.swift
1import SwiftUI 2 3struct SourceLinkView: View { 4 var body: some View { 5 GroupBox() { 6 HStack { 7 Text("Content source") 8 Spacer() 9 Link("Wikipedia", destination: URL(string: "https//wikipedia.com")!) 10 Image(systemName: "arrow.up.right.square") 11 } 12 .font(.footnote) 13 } 14 } 15} 16 17struct SourceLinkView_Previews: PreviewProvider { 18 static var previews: some View { 19 SourceLinkView() 20 .previewLayout(.sizeThatFits) 21 .padding() 22 } 23} 24
FruitDetailView.swift
1import SwiftUI 2 3struct FruitDetailView: View { 4 // MARK: - PROPERTIES 5 6 var fruit: Fruit 7 8 // MARK: - BODY 9 10 var body: some View { 11 NavigationView { 12 ScrollView(.vertical, showsIndicators: false) { 13 VStack(alignment: .center, spacing: 20) { 14 // HEADER 15 FruitHeaderView(fruit: fruit) 16 17 VStack(alignment: .leading, spacing: 20) { 18 // TITLE 19 Text(fruit.title) 20 .font(.title) 21 .fontWeight(.heavy) 22 .foregroundColor(fruit.gradientColors[1]) 23 24 // HEADLINE 25 Text(fruit.headline) 26 .font(.headline) 27 .multilineTextAlignment(.leading) 28 29 // NUTRIENTS 30 31 // SUBHEADLINE 32 Text("Learn more about \(fruit.title)".uppercased()) 33 .fontWeight(.bold) 34 .foregroundColor(fruit.gradientColors[1]) 35 36 // DESCRIPTION 37 Text(fruit.description) 38 .multilineTextAlignment(.leading) 39 40 // LINK 41 SourceLinkView() 42 .padding(.top, 10) 43 .padding(.bottom, 40) 44 } //: VSTACK 45 .padding(.horizontal, 20) 46 .frame(maxWidth: 640, alignment: .center) 47 } //: VSTACK 48 .navigationBarTitle(fruit.title, displayMode: .inline) 49 .navigationBarHidden(true) 50 } //: SCROLL 51 .edgesIgnoringSafeArea(.top) 52 } //: NAVIGATION 53 } 54} 55 56// MARK: - PREVIEW 57 58struct FruitDetailView_Previews: PreviewProvider { 59 static var previews: some View { 60 FruitDetailView(fruit: fruitsData[0]) 61 } 62} 63
試したこと
・ドメインの確認→ドメインをそのままブラウザにコピペしたら、wikipedia公式ページが出てきたので、ドメイン名が間違っていないと考えられる。
・規定のブラウザがchromeだったのでsafariに変えてみた→wikipediaに飛ばないため、ブラウザの問題ではない。
補足情報(FW/ツールのバージョンなど)
公式ドキュメントURL
https://developer.apple.com/documentation/swiftui/link
同じことが日本語で書かれているWebページ
https://www.hfoasi8fje3.work/entry/2021/06/24/%E3%80%90SwiftUI%E3%80%91%E5%A4%96%E9%83%A8%E3%83%AA%E3%83%B3%E3%82%AF%E3%82%92%E9%96%8B%E3%81%8F%E5%AE%9F%E8%A3%85
Failed to open URL https//wikipedia.com: Errorで調べてみたWebページ
https://stackoverflow.com/questions/51029855/parsing-wikipedia-url-failed-to-open-stream-http-request-failed
開発環境
macOS Monterey 12.5.1
Xcode 13.4.1
Swift version 5.6.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。