반응형
class ViewController: UIViewController, WKScriptMessageHandler, WKUIDelegate { var webView: WKWebView?; var host = "모바일웹주소(http://m.naver.com/)"; override func viewDidLoad() { super.viewDidLoad() // 화면이 load되면 webview를 initialize한다. webView = initJavascriptBridge(); self.webView!.uiDelegate = self } func initJavascriptBridge()->WKWebView{ let contentController = WKUserContentController(); // 웹에서 불러쓸수 있는 native함수를 정의한다. contentController.add( self, name: "ios" ); let config = WKWebViewConfiguration(); config.userContentController = contentController; let webView:WKWebView = WKWebView(frame:self.view.frame, configuration:config); let url = NSURL(string:host); let request = NSURLRequest(url:url! as URL); webView.load(request as URLRequest); self.view.addSubview(webView); return webView; } // 웹뷰에서 alert나 confirm을 사용할 수 있게 해 주는 impleament func webView(_ webView: WKWebView, runJavaScriptAlertPanelWithMessage message: String, initiatedByFrame frame: WKFrameInfo, completionHandler: @escaping () -> Void) { print("alert called"); let alertController = UIAlertController(title: nil, message: message, preferredStyle: .actionSheet) alertController.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (action) in completionHandler() })) self.present(alertController, animated: true, completion: nil) }
하이브리드앱을 만드는 가장 기본 골격 소스이다.
잘 만들어진 모바일웹만 있다면 위 소스만으로 앱이 하나 만들어지게 된다. (다만 단순 웹으로 이루어진 앱은 심사 시 reject가 나게 되니 native적인 요소를 좀 추가 해 줘야 한다.)
반응형
'IT 실무 > 모바일 프로그래밍' 카테고리의 다른 글
[iOS] UIView에 있는 버튼이 클릭이 안될 때 (0) | 2017.05.07 |
---|---|
[iOS] XCode Swift 환경 에서 https 사용안하고 웹뷰 띄우기 (0) | 2017.05.07 |
특정 색깔의 반전 색깔(반전색) 사용하기 (0) | 2017.05.06 |
로그캣(logcat)에서 dalvikvm 을 숨기고 싶을때 (0) | 2017.05.06 |
안드로이드 기본 제공 Drawables(아이콘 등) (0) | 2017.05.06 |
댓글