рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдИрдУрдПрд╕ 14.5 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдЦрд┐рд▓рд╛рдбрд╝реА рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ,
рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рдЕрднреА рднреА рд╕рдВрд╕реНрдХрд░рдг рдЧреИрд░ рд╢реВрдиреНрдп рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЧреИрд░ рд╢реВрдиреНрдп рд╕реБрд░рдХреНрд╖рд╛ рдкрд░ рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВред
рдпрд╛ рдореБрдЭреЗ рдирд┐рд░реНрджреЗрд╢ рджреЗрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП
рдХреНрд░реИрд╢ рд╣реЛрдиреЗ рдкрд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреБрдЫ рднреА рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХреНрдпреЛрдВ
рдЬрдм рдореИрдВ рдПрдХреНрд╕рдХреЛрдб рдХреЗ рд╕рд╛рде рдбреАрдмрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдХреНрд░реИрд╢ рд▓реЙрдЧ рд╣реЛрддрд╛ рд╣реИ
рд╕рдорд╕реНрдпрд╛ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд▓рдЧрдЗрди рдкрд░ рд╣реИ - 'userAgent' рдХреЛ рдкрд╛рд░реНрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рднреА рдорд┐рд▓реА рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛
Flutter_inappwebview рдкреНрд▓рдЧрдЗрди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдореИрдВрдиреЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП Options.swift рдореЗрдВ рд╡рд┐рдзрд┐ parse(options: [String: Any?])
рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
func parse(options: [String: Any?]) -> Options {
for (key, value) in options {
if !(value is NSNull) {
if self.responds(to: Selector(key)) {
self.setValue(value, forKey: key)
}
}
}
return self
}
рдУрд╣, рд╡рд╛рд╣ред
рдХреНрдпрд╛ рдЖрдк рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ @NAKANISYNTH , рдпрд╣ рдмрд╣реБрдд рдорджрджрдЧрд╛рд░ рд╣реЛрдЧрд╛? рдореИрдВ Options.swift рдХрд╣рд╛рдБ рдвреВрдБрдвреВрдБ?
рдпрд╣ рдлрд╝рд╛рдЗрд▓? https://github.com/pichillilorenzo/flutter_inappwebview/blob/4469ec7/ios/Classes/Options.swift#L17 -L24
@gyamoto рд╣рд╛рдБ, рдмрд╕!
@muhajirdev Option.swift рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдкреНрд▓рдЧрдЗрди 'flutter_inappwebview' рдореЗрдВ рд╣реИред рддреЛ рдЕрдкрдиреЗ рд░реЗрдкреЛ рдореЗрдВ Runner.xcworkspace рдЦреЛрд▓реЗрдВ рдФрд░ рдЙрд╕ рдкрд░ Option.swift рд╕рд░реНрдЪ рдХрд░реЗрдВред
рдзрдиреНрдпрд╡рд╛рдж @NAKANISYNTH ред рдпрд╣ рдЪрд▓реЗрдЧрд╛!
рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/pichillilorenzo/flutter_inappwebview/ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ?
рд╣реЗ рджреЛрд╕реНрддреЛрдВ, рдореБрдЭреЗ рд╕рдЪ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрд╣рд╛рдВ рдЦреЛрдЬрдирд╛ рд╣реИред
рдХреНрдпрд╛ рдпрд╣ рдпрд╣рд╛рдБ рдХрд╣реАрдВ рд╣реИ?
рдореБрдЭреЗ flutter_inappweview
рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ
@muhajirdev Shift + Command + O
рджрдмрд╛рдПрдВ рдФрд░ Options.swift
рдЦреЛрдЬреЗрдВред
рдореБрдЭреЗ рдпрд╣ рднреА рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ?
рдореИрдВ рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╕рдВрд╕реНрдХрд░рдг 6.1.1 btw
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдпрд╣рд╛рдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ youtube_player_flutter
рдФрд░ flutter_inappwebview
рдпрд╣рд╛рдВ рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ pubpsec.yaml рдореЗрдВ рд╣реИ
Flutter_inappwebview рдкреНрд▓рдЧрдЗрди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдореИрдВрдиреЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП Options.swift рдореЗрдВ рд╡рд┐рдзрд┐parse(options: [String: Any?])
рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИредfunc parse(options: [String: Any?]) -> Options { for (key, value) in options { if !(value is NSNull) { if self.responds(to: Selector(key)) { self.setValue(value, forKey: key) } } } return self }
рдЬрдм рдореИрдВ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рддрд╛ рд╣реВрдБ рддреЛ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдмрд╣реБрдд-рдмрд╣реБрдд рдзрдиреНрдпрд╡рд╛рдж!
рдЖрдк forceHD: true,
рд╕рд╛рде рд╣реА YoutubePlayerController
рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ YoutubePlayerFlags
рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдпрд╣ pichillilorenzo/flutter_inappwebview рдХреЗ рд▓реЗрдЦрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ applaypay рд╕реЗ рднреА рд╕рдВрдмрдВрдзрд┐рдд рд╣реИред
рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рд╕реНрдкрдВрджрди рдХреЛ 2.0 . рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рд╣рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛
рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдордиреЗ рдлрд╝реНрд▓рдЯрд░ 2.2 рдФрд░ рдкреИрдХреЗрдЬ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 7.0.0+7
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП iOS 14.5 рдореЗрдВ рдХреНрд░реИрд╢ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд┐рдпрд╛ред 8.0.0
рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рджреБрд░реНрдШрдЯрдирд╛ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИред
рдЕрдЧрд░ рдЖрдк рд▓реЛрдЧ Option.swift рдирд╣реАрдВ рдвреВрдВрдв рдкрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рддрд░рд╣ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ
рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ vscode рд╕реЗ рдЦреЛрдЬрдиреЗ рдХрд╛ рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рд╣реИ:
рдирд┐рд░реНрднрд░рддрд╛ рдЯреИрдм рдЦреЛрд▓реЗрдВ, рдФрд░ Flutter_inappwebview рдЦреЛрдЬреЗрдВ
youtube_player_iframe рдкрд░ рдЬрд┐рди рд▓реЛрдЧреЛрдВ рдХреЗ рдкрд╛рд╕ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдЙрдирдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИред
рдмрд╕ рдЬреЛрдбрд╝ рджреЛ
youtube_player_iframe:
git:
url: https://github.com/thiagocarvalho0877/youtube_player_flutter.git
path: ./packages/youtube_player_iframe
ref: fix-inappwebview
https://github.com/thiagocarvalho0877/youtube_player_flutter
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
Flutter_inappwebview рдкреНрд▓рдЧрдЗрди рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред
рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдореИрдВрдиреЗ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП Options.swift рдореЗрдВ рд╡рд┐рдзрд┐
parse(options: [String: Any?])
рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред