Youtube_player_flutter: [рдмрдЧ] рдЖрдИрдУрдПрд╕ 14.5 рдкрд░ рдХреНрд░реИрд╢

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рдЕрдкреНрд░реИрд▓ 2021  ┬╖  21рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: sarbagyastha/youtube_player_flutter

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдИрдУрдПрд╕ 14.5 рдкрд░ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп рдЦрд┐рд▓рд╛рдбрд╝реА рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ,
рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ рдЕрднреА рднреА рд╕рдВрд╕реНрдХрд░рдг рдЧреИрд░ рд╢реВрдиреНрдп рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЖрдк рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЧреИрд░ рд╢реВрдиреНрдп рд╕реБрд░рдХреНрд╖рд╛ рдкрд░ рдЬрд╛рд░реА рдХрд░рддреЗ рд╣реИрдВред

рдпрд╛ рдореБрдЭреЗ рдирд┐рд░реНрджреЗрд╢ рджреЗрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

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
    }

рд╕рднреА 21 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрд░реИрд╢ рд╣реЛрдиреЗ рдкрд░ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдХреБрдЫ рднреА рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХреНрдпреЛрдВ

рдЬрдм рдореИрдВ рдПрдХреНрд╕рдХреЛрдб рдХреЗ рд╕рд╛рде рдбреАрдмрдЧ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдпрд╣ рдХреНрд░реИрд╢ рд▓реЙрдЧ рд╣реЛрддрд╛ рд╣реИ

Screen Shot 2021-04-28 at 14 44 12

рд╕рдорд╕реНрдпрд╛ рдирд┐рд░реНрднрд░рддрд╛ рдкреНрд▓рдЧрдЗрди рдкрд░ рд╣реИ - '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 рдХрд╣рд╛рдБ рдвреВрдБрдвреВрдБ?

@gyamoto рд╣рд╛рдБ, рдмрд╕!
@muhajirdev Option.swift рдбрд┐рдкреЗрдВрдбреЗрдВрд╕реА рдкреНрд▓рдЧрдЗрди 'flutter_inappwebview' рдореЗрдВ рд╣реИред рддреЛ рдЕрдкрдиреЗ рд░реЗрдкреЛ рдореЗрдВ Runner.xcworkspace рдЦреЛрд▓реЗрдВ рдФрд░ рдЙрд╕ рдкрд░ Option.swift рд╕рд░реНрдЪ рдХрд░реЗрдВред

рдзрдиреНрдпрд╡рд╛рдж @NAKANISYNTH ред рдпрд╣ рдЪрд▓реЗрдЧрд╛!

рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП https://github.com/pichillilorenzo/flutter_inappwebview/ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рд╣реИ?

рд╣реЗ рджреЛрд╕реНрддреЛрдВ, рдореБрдЭреЗ рд╕рдЪ рдореЗрдВ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХрд╣рд╛рдВ рдЦреЛрдЬрдирд╛ рд╣реИред

image

image

рдХреНрдпрд╛ рдпрд╣ рдпрд╣рд╛рдБ рдХрд╣реАрдВ рд╣реИ?

рдореБрдЭреЗ flutter_inappweview рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ

@muhajirdev Shift + Command + O рджрдмрд╛рдПрдВ рдФрд░ Options.swift рдЦреЛрдЬреЗрдВред

рдореБрдЭреЗ рдпрд╣ рднреА рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рдХреЛрдИ рд╡рд┐рдЪрд╛рд░ рдХреНрдпреЛрдВ?
image

рдореИрдВ рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд╕рдВрд╕реНрдХрд░рдг 6.1.1 btw

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЛ рдпрд╣рд╛рдВ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ youtube_player_flutter рдФрд░ flutter_inappwebview рдпрд╣рд╛рдВ рдирд╣реАрдВ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ pubpsec.yaml рдореЗрдВ рд╣реИ

image

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 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рд╕реЗ рджреБрд░реНрдШрдЯрдирд╛ рдареАрдХ рд╣реЛ рдЬрд╛рддреА рд╣реИред

Screenshot 2021-09-01 at 10 40 55 AM
рдЕрдЧрд░ рдЖрдк рд▓реЛрдЧ Option.swift рдирд╣реАрдВ рдвреВрдВрдв рдкрд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рддрд░рд╣ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ

рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ vscode рд╕реЗ рдЦреЛрдЬрдиреЗ рдХрд╛ рджреВрд╕рд░рд╛ рддрд░реАрдХрд╛ рд╣реИ:

рдирд┐рд░реНрднрд░рддрд╛ рдЯреИрдм рдЦреЛрд▓реЗрдВ, рдФрд░ Flutter_inappwebview рдЦреЛрдЬреЗрдВ

Screen Shot 2021-11-04 at 08 07 17

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

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

sc00n picture sc00n  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

madhu-1stmain picture madhu-1stmain  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jimmyff picture jimmyff  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

DiegoLimeiradaSilva picture DiegoLimeiradaSilva  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

channdara picture channdara  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ