IOS HTTP 프로토콜 사용
\ios\Runner\Info.plist 끝부분 </dict> 앞에 다음을 추가
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsLocalNetworking</key>
<true/>
<key>NSAllowsArbitraryLoadsInWebContent</key>
</dict>
</dict>
Android HTTP 프로토콜 사용
\android\app\src\main\AndroidManifest.xml에 추가 (추가된부분 참고)
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.splash_screen"
>
<uses-permission android:name="android.permission.INTERNET" /> //인터넷허용. 추가된부분
<application
android:label="splash_screen"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"
android:usesCleartextTraffic="true" // HTTP 사용. 추가된부분
>
WebView 사용법 (4.X 기준)
https://pub.dev/packages/webview_flutter
webview_flutter | Flutter Package
A Flutter plugin that provides a WebView widget on Android and iOS.
pub.dev
\pubspec.yaml에 위의 webview_flutter plugin 추가
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
webview_flutter: ^4.4.1 # 추가된 부분
코드 사용 예시
import 'package:flutter/material.dart';
import 'package:webview_flutter/webview_flutter.dart';
class HomeScreen extends StatelessWidget {
HomeScreen({Key? key}) : super(key: key);
final WebViewController _controller = WebViewController()
..setJavaScriptMode(JavaScriptMode.unrestricted) // 자바스크립트 모드 허용
..setBackgroundColor(const Color(0x00000000))
// ..setNavigationDelegate(
// NavigationDelegate(
// onProgress: (int progress) {
// // Update loading bar.
// },
// onPageStarted: (String url) {},
// onPageFinished: (String url) {},
// onWebResourceError: (WebResourceError error) {},
// onNavigationRequest: (NavigationRequest request) {
// if (request.url.startsWith('https://www.youtube.com/')) {
// return NavigationDecision.prevent;
// }
// return NavigationDecision.navigate;
// },
// ),
// )
..loadRequest(Uri.parse('https://flutter.dev'));
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
backgroundColor: Colors.orange,
title: const Text('Code Factory'),
centerTitle: true,
actions: [
IconButton(
onPressed: () {
_controller.loadRequest(Uri.parse('https://flutter.dev'));
},
icon: const Icon(
Icons.home,
))
],
),
body: WebViewWidget(controller: _controller));
}
}
'Flutter' 카테고리의 다른 글
[Flutter] 전자액자 프로젝트 (PageView, Timer, PageController) (1) | 2023.10.16 |
---|---|
[Flutter] StatefulWidget 이론 (0) | 2023.10.12 |
[Flutter] row and column 연습 (2) | 2023.09.23 |
[Flutter] row and column (0) | 2023.09.22 |
[Flutter] Splash Screen (0) | 2023.09.22 |