android 에서 webview 포 지 셔 닝 문제 예시 상세 설명
현재 많은 앱 에 웹 페이지(Hyprid App)가 내장 되 어 있다.예 를 들 어 많은 전자상거래 플랫폼,타 오 바 오,경 동,합산 등 이다.
경 동
그렇다면 이런 것 은 어떻게 이 루어 져 야 할 까?사실 이것 은 Android 에서 WebView 라 는 구성 요소 가 실 현 된 것 입 니 다.
요즘 안 드 로 이 드 홈 페이지 개발 을 하고 있 습 니 다.포 지 셔 닝 을 사용 해 야 하 는 페이지 가 있 지만 포 지 셔 닝 을 계속 가 져 오 는 데 실 패 했 습 니 다.슬프다.인터넷 강좌 도 많 지만 예외 없 이 모두 실패했다.결국 노 부 는 3 일 동안 심혈 을 기울 여 해결 방안 을 만 들 었 다.
3 단계 전략:
1.권한 가 져 오기
안 드 로 이 드 6.0 이후 위치 나 저장 권한 을 동적 으로 가 져 와 각자 의 취미 에 따라 위 치 를 배치 해 야 합 니 다.저 는 초기 화 를 시작 할 때 MainActivity 의 OnCreate 방법 에 넣 었 습 니 다.
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION)
!= PackageManager.PERMISSION_GRANTED
|| ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION)
!= PackageManager.PERMISSION_GRANTED
|| ActivityCompat.checkSelfPermission(this, Manifest.permission.WRITE_EXTERNAL_STORAGE)
!= PackageManager.PERMISSION_GRANTED) {
Toast.makeText(getApplicationContext()," , ",Toast.LENGTH_SHORT).show();
// ( ) , ( )
ActivityCompat.requestPermissions(MainActivity.this,new String[]{Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 100);
return false;
}
2.webview setting 설정(다른 사람 코드 복사)
WebView webView = (WebView)findViewById(R.id.webview);
WebSettings webSettings = webView.getSettings();
//webview js
webSettings.setJavaScriptEnabled(true);
//
webSettings.setDatabaseEnabled(true);
//
String dir = this.getApplicationContext().getDir("database", Context.MODE_PRIVATE).getPath();
webSettings.setGeolocationDatabasePath(dir);
//
webSettings.setGeolocationEnabled(true);
// DomStorage
webSettings.setDomStorageEnabled(true)
//
webView.setWebChromeClient(new WebChromeClient() {
@Override
public void onReceivedIcon(WebView view, Bitmap icon) {
super.onReceivedIcon(view, icon);
}
@Override
public void onGeolocationPermissionsShowPrompt(String origin,Callback callback) {
callback.invoke(origin, true, false);
super.onGeolocationPermissionsShowPrompt(origin, callback);
}
});
3 네트워크 권한
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
인터넷 강 좌 는 여기까지 입 니 다.일반적으로 너 에 게 친구 의 포 지 셔 닝 을 사용 할 수 있다 고 알려 줄 것 이다.하지만 난 못 써!!검사 하 러 왔 다 검사 하 러 가다.괜 찮 은 데.똑 같 아!
4 build gradle 수정
자신의 app build.gradle 에 targetSdkVersion 23 이 있 습 니 다.
그리고 당신 의 공사 지 도 를 사용 할 수 있 습 니 다.
참고 사이트:http://blog.csdn.net/cheunjq/article/details/54729875
총결산
이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.