728x90
Flutter로 개발을 할 때 웹뷰 등을 사용할 경우 네트워크 접근이 필요합니다.
이때 권한 설정을 하지 않을 경우 정상동작 하지 않거나 오류 메시지가 표시됩니다.
권한 추가 - Android
안드로이드 경우 프로젝트내 android/app/src/main/AndroidManifest.xml 파일을 수정합니다.
uses-permission 태그를 추가하며 값은 android.permission.INTERNET 으로 설정합니다.
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
....
</manifest>
위 내용을 추가할 경우 기본적으로 HTTPS 프로토콜만 허용됩니다.
HTTP 프로토콜도 허용할 경우 application 태그에 android:usesCleartextTraffic=true로 설정하면 됩니다.
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:label="blog_web_app"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"
android:usesCleartextTraffic="true"> ...추가한 부분
....
</manifest>
권한 추가 - iOS
iOS 경우 기본적으로 HTTPS 프로토콜은 허용됩니다.
HTTP 프로토콜도 허용할 경우, 프로젝트내 ios/Runner/Info.plist 파일을 수정합니다.
dict 에 다음과 같이 NSAllowsArbitraryLoads=true 를 추가합니다.
<plist version="1.0">
<dict>
...
...추가한 부분
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
</dict>
</plist>
권한 추가 - macOS
HTTP 허용을 위한 설정은 iOS와 동일합니다.
다만, 웹뷰를 사용하기 위해 다음 설정을 추가해야합니다.
대상 파일은 macos/Runner/DebugProfile.entitlements, macos/Runner/Release.entitlements 입니다.
dict에 다음과 같이 com.apple.security.network.client=true 를 추가합니다.
<plist version="1.0">
<dict>
...
<key>com.apple.security.network.client</key>
<true/>
</dict>
</plist>
반응형