Xamarin.forms: [macOS] WebView์—์„œ ํƒ์ƒ‰ํ•  ์ˆ˜ ์—†์Œ

์— ๋งŒ๋“  2018๋…„ 11์›” 03์ผ  ยท  3์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: xamarin/Xamarin.Forms

์„ค๋ช…

macOS์˜ WebView๋Š” ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•˜์ง€๋งŒ ํŽ˜์ด์ง€ ๋‚ด์—์„œ ํƒ์ƒ‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. SPA๋ฅผ ๋กœ๋“œํ•  ๋•Œ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ํ•ญ์ƒ ์ง‘์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค.
๋˜ํ•œ ์ฒ˜์Œ์—๋Š” webview๊ฐ€ ํŽ˜์ด์ง€๋ฅผ ๋กœ๋“œํ•˜์ง€ ์•Š๊ณ  ํ•ญ์ƒ ๋‘ ๋ฒˆ์งธ๋กœ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

3.0์—์„œ๋Š” ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ–ˆ์ง€๋งŒ ๋ฌธ์ œ๋Š” 3.1 ์ด์ƒ์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

๋ฒˆ์‹ ๋‹จ๊ณ„

  1. ์ƒˆ ContentPage WebView ์ถ”๊ฐ€
  2. ๊ฐ’์ด https://santafepubliclibrary.odilo.us/opac/์ธ Source ์†์„ฑ์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
  3. Navigation.PushAsync ๋ฅผ ํ†ตํ•ด ์ƒˆ ํŽ˜์ด์ง€๋กœ ์ด๋™

์˜ˆ์ƒ๋˜๋Š” ๋™์ž‘

ํŽ˜์ด์ง€๋Š” ์ฒ˜์Œ์— ๋กœ๋“œ๋˜๋ฉฐ XF 3.0์—์„œ์™€ ๊ฐ™์ด ํŽ˜์ด์ง€ ๋‚ด๋ถ€๋ฅผ ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ํ–‰๋™

ํŽ˜์ด์ง€๊ฐ€ ๋‘ ๋ฒˆ์งธ๋กœ ๋กœ๋“œ๋˜๊ณ  ํŽ˜์ด์ง€ ๋‚ด๋ถ€๋ฅผ ํƒ์ƒ‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ์ •๋ณด

  • ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๋ฒ„์ „: Xamarin.Forms 3.3.0.967583
  • ๋งˆ์ง€๋ง‰์œผ๋กœ ์•Œ๋ ค์ง„ ์ข‹์€ ๋ฒ„์ „: Xamarin.Forms 3.0.0.561731
  • IDE: Mac์šฉ Visual Studio 7.6.11(๋นŒ๋“œ 9)
  • ํ”Œ๋žซํผ ๋Œ€์ƒ ํ”„๋ ˆ์ž„์›Œํฌ:

    • ๋งฅOS: 10.13.6

์Šคํฌ๋ฆฐ์ƒท

webview_spa

์žฌ์ƒ์‚ฐ ๋งํฌ

https://github.com/joseluisct/WebViewIssues

webview 2 good first issue help wanted inactive macOS up-for-grabs

๋ชจ๋“  3 ๋Œ“๊ธ€

๋ณด๊ณ ๋œ ๋‹ค๋ฅธ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์ž‘๋™ํ•˜๋Š” ์žฌ์ƒ์‚ฐ์€ NRE๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 3.3์—์„œ ๋‹ค์‹œ ํƒ์ƒ‰ํ•˜๋ ค๊ณ  ํ•  ๋•Œ ์‹ค์ œ๋กœ ์ถฉ๋Œํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ?

(์šฐ์—ฐํžˆ ํ์‡„๋จ)

๋‚˜๋Š” 3.3(๋งˆ์ง€๋ง‰ ์•ˆ์ •)์—์„œ ๋‹ค์‹œ ํ…Œ์ŠคํŠธํ–ˆ๊ณ  NRE๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. WebView๋กœ ํŽ˜์ด์ง€๋ฅผ ํƒ์ƒ‰ํ•˜๊ณ  ๋’ค๋กœ ๋ฒ„ํŠผ์„ ๋น ๋ฅด๊ฒŒ ํด๋ฆญํ•  ๋•Œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋ฌธ์ œ ๋ชจ๋‘ ๋™์ผํ•œ WebView๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ๋Œ์•„์˜ฌ ๋•Œ ์•„๋ฌด ์ž‘์—…๋„ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

NRE๊ฐ€ ์ด ๋‹ค๋ฅธ ๋ฌธ์ œ์™€ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. #4001 that has been done at 3.4 #4188
NRE์˜ ์Šคํƒ ์ถ”์ (์ฐธ์กฐ๋œ ๋ฌธ์ œ์™€ ๋™์ผ):
Object reference not set to an instance of an object at Xamarin.Forms.Platform.MacOS.WebViewRenderer+FormsWebFrameDelegate.FinishedLoad (WebKit.WebView sender, WebKit.WebFrame forFrame) [0x00017] in <1d80e21b8be74ba38bdf2bd5d3e4d5a0>:0 at (wrapper managed-to-native) AppKit.NSApplication.NSApplicationMain(int,string[]) at AppKit.NSApplication.Main (System.String[] args) [0x00040] in /Library/Frameworks/Xamarin.Mac.framework/Versions/5.0.0.0/src/Xamarin.Mac/AppKit/NSApplication.cs:100 at WebViewIssues.macOS.MainClass.Main (System.String[] args) [0x00017] in /Volumes/VMware Shared Folders/Compartido/WebViewIssues/WebViewIssues/WebViewIssues.macOS/Main.cs:11

๊ทธ๋Ÿฌ๋‚˜ ์กฐ๊ธˆ ๋” ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ๋‹ค์‹œ ์˜ค๋ฉด NRE๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๊ณ  ์„ค๋ช…๊ณผ ๊ฐ™์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค(์žฌ์ƒ์˜ ์ƒ๋‹จ/์˜ค๋ฅธ์ชฝ ๋ฒ„ํŠผ).
3.0์—์„œ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์ •์ƒ์ž…๋‹ˆ๋‹ค. (UWP์—์„œ๋„ OK)

Xamarin.Mac ์•ฑ์—์„œ WebView๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•˜๋Š”๋ฐ ์ด ๋ฌธ์ œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค!, ํŽ˜์ด์ง€ ๊ฐ„์„ ํƒ์ƒ‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
Xamarin.Forms 3.0์—์„œ๋Š” ํƒ์ƒ‰์ด ๊ดœ์ฐฎ์€ ๊ฒƒ ๊ฐ™์ง€๋งŒ ํƒ์ƒ‰ ์ด๋ฒคํŠธ๋Š” ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Xamarin.Forms 3.1์—์„œ๋Š” ํƒ์ƒ‰ ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋งŒ ํŽ˜์ด์ง€ ๊ฐ„์— ํƒ์ƒ‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰