"WebView를 사용하여 메인"응용 프로그램 "을 표시하고 있으므로 내 첫 번째 안드로이드"응용 프로그램 "을 코딩하고 있습니다.특정 URL이로드 될 때 어떤 작업을 수행 할 수 있습니까?
배경을 HTML 코드에서로드하는 대신 이미지를 렌더링하는 것이 일반적으로 더 빠릅니다. 저는 앱의 배경 역할을하고 처음부터로드되는 ImageView를 가지고 있으며 WebView의 '배후'에 있습니다 (WebView 배경이 투명 함).
그러나 일단 사용자가 텍스트 필드에 enter 키를 누르고 WebView 내의 다른 웹 페이지로 보내지면 첫 번째 배경 ImageView를 제거하고 새 이미지를로드하여 이전 이미지가 표시되지 않도록하고 싶습니다. 천천히. 그래서 나는 로드 이벤트의 일종을 감지하고 그걸로 뭔가를 할 줄 알았는데. 그러나, 나는 문서를보고 있었고, 나는 아무것도 발견하지 못했다. 나는 어디서부터 시작해야할지 모른다. 이 일을 할 수있는 방법이 있습니까? 감사합니다.
내 사용 코드라면 여기에 나와 있습니다.하지만 실제로는 관련이 없다고 생각합니다. 자파르에
내가하고 결국 무엇protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getSupportActionBar().hide();
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.activity_main_webview);
mWebView.setBackgroundColor(0x00000000);
mWebView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mWifi = connManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
NetworkInfo mMobile = connManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if((mWifi != null && mWifi.isConnected()) || (mMobile != null && mMobile.isConnected())) {
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setCacheMode(webSettings.LOAD_NO_CACHE);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
findViewById(R.id.splash).setVisibility(View.GONE);
findViewById(R.id.activity_main_webview).setVisibility(View.VISIBLE);
}
public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
mWebView.loadUrl("file:///android_asset/error.html");
}
});
mWebView.loadUrl(got_url);
}
else
{
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.activity_main_webview);
mWebView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
findViewById(R.id.splash).setVisibility(View.GONE);
findViewById(R.id.activity_main_webview).setVisibility(View.VISIBLE);
}
});
mWebView.loadUrl("file:///android_asset/error-nointernet.html");
}
}
, 감사 :
public void onPageStarted(WebView view, String url) {
if(url.equals(certainUrl)) //url returns last requested URL.
{
findViewById(R.id.background0).setVisibility(View.GONE);
findViewById(R.id.background1).setVisibility(View.VISIBLE);
}
}
안녕하십니까. 회신 해 주셔서 감사합니다. 나는 그것을 아주 가난하게 설명했다고 생각한다. 먼저 이미지가로드되고 ImageView (배경)와 WebView가로드됩니다. 이것은 괜찮지 만 WebView의 첫 번째로드 된 URL에는 사용자의 입력을 요청하는 필드가 있습니다. 사용자가 HTML을 통해 제출하고 다음 페이지로 리디렉션되면 첫 번째 배경을 없애고 새 배경을로드하고 싶습니다. 또는 첫 번째 배경을 사라지게 만들고 싶습니다. – buffermebufferthat
신경 쓰지 마라, 미안하다,이게 옳은 대답이다. 아직 자바를 완전히 이해하지 못한다. onPageStarted (또는 onPageFinished)를 호출하고 마지막으로 요청 된 URL을 반환하며 거기에서 if 문을 사용했습니다. 내가 사용한 코드는 내 게시물에 있습니다. 고마워요! – buffermebufferthat