簡體   English   中英

等待webview中的javascript完成以繼續Android Java

[英]Wait javascript in webview is finished to continue Android Java

我是學習java的新手。 我一直在努力工作2天。 我會生氣的。 請幫我

我希望當我的函數運行時,所有活動必須等到我的函數完成。

一個例子

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getSupportActionBar().hide();
    setContentView(R.layout.activity_main);
    webView2 = (WebView) findViewById(R.id.webView);

    Log.v("htmlg","oncreate started");

    main_command();
    /*
    *
    *  main_command(), When this command run application must wait in here.
    *
    * */

    Log.v("htmlg", "oncreate finished");

}

public static int finished = 0;

public void main_command(){

    /*
    * 
    * There is some webview actions in here. it takes about 5 minutes. 
    * 
    * When webview operations are finished.
    * I call javascript command javascript:window.HTMLOUT.ok(); 
    * I want everything wait until webview operations are finished and javascript command runned. 
    * 
    * */

}

但我無法做到這一點。 當main_command()運行時,Log.v()函數將立即運行。 但是main_command()仍在運行,但尚未完成。 當它完成一個javascript命令將調用android內的一個函數。 然后流程將完成,應用程序可以繼續工作。

現在,我告訴我的經歷。

  • 我試圖在Asynctask中編寫webview代碼,但我無法在asynctask中使用webview。

  • 我把webview放在rununithread()里面asynctask,我不能再做了。

  • 我試圖將main_command()放在CountdownTimer中,但在CountdownTimer完成之前運行“oncreate finished”行。

現在我感到無助。 我不太了解java或android編程。 我是php程序員。 我嘗試做webview應用程序。 我不太了解java結構。 如果可以的話,你能寫出正確的工作代碼示例嗎? 因為我不了解所有的例子。 我查看並閱讀了所有可能有解決方案,但我無法理解。 我需要你的幫助。

謝謝

你不想阻止主線程,否則android系統會顯示“應用程序沒有響應”錯誤。 而且您的用戶很可能會選擇殺死該應用。

據我所知,您希望通過javascript命令調用應用程序時恢復應用程序。 這是你如何進行:

  1. 創建一個函數postMainCommand() 在此方法中,編寫在javascript命令調用之后需要執行的所有內容。 我的意思是:

     Log.v("htmlg", "oncreate finished"); 

    在完成Web工作后調用此方法。

  2. 直到你的工作正在進行中,你可以顯示一個不可取消的進度對話框,其中包含一些文字,如“請稍候...”。 或者,如果您可以跟蹤進度,則可以繼續更新消息:

     ProgressDialog dialog = new ProgressDialog(this); dialog.setMessage("Please wait..."); dialog.setCancelable(false); dialog.show(); 

    不可取消,因為您不希望用戶與中間的應用程序進行交互,對吧?

  3. 當您的webview作業結束時,請調用dialog.cancel();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM