1. 程式人生 > >WebView與JS互動不會執行onPageFinished() -WebView(WebKit)

WebView與JS互動不會執行onPageFinished() -WebView(WebKit)

WebView sample: https://github.com/GoogleChrome/chromium-webview-samples

Android WebView 在開發過程中有哪些坑?->https://www.zhihu.com/question/31316646

> android webkit學習筆記1---url的load過程: http://blog.csdn.net/shadow_dance/article/details/9130317
> WebView與JS互動不會執行onPageFinished() 
 http://stackoverflow.com/questions/12085588/android-how-to-get-redirection-event-in-webview
重寫onPageFinished方法,頁面載入完了就會調這個方法,然後在這個方法裡面呼叫
webView.loadUrl("<我的js程式碼>");
主要的問題是伺服器做了ssl處理
@Override
            public void onReceivedSslError(WebView view, SslErrorHandler handler, SslError error) {
//              super.onReceivedSslError(view, handler, error);

                Log.e(TAG, "onReceivedSslError...");
                Log.e(TAG, "Error: " + error);
                handler.proceed();
            }
可能的問題:2.2之前沒有這個方法,所以在2.2之前的手機上執行會有問題。還好我們的產品不需要支援2.2。

> Android Webview Java和Javascript安全互動:http://www.open-open.com/lib/view/open1410920879601.html

> web與JS互動感覺沒執行JS物件中的方法:http://www.eoeandroid.com/thread-567360-1-1.html?_dsign=465fca50

webView.setWebViewClient(new WebViewClient() {  
            @Override  
            public void onPageFinished(WebView view, String url) {  
                Toast.makeText(WebViewActivity.this, "網頁載入完成", 0).show();  
                //隱藏包含id為header的標籤之間的內容  
                view.loadUrl("javascript:window.handler.show(document.getElementById('header').style.display='none');");  
                view.loadUrl("javascript:window.handler.show(document.getElementById('footerwrap').style.display='none');");  
//              view.loadUrl("javascript:window.handler.show(document.body.innerHTML);");  
                super.onPageFinished(view, url);  
            }  
        }); 
但是暫時有一個問題,因為在JS中是可以有id重複的現象,這樣,通過getElementById就不行
> onPageFinished不能被呼叫:  http://blog.csdn.net/zhaoweideyouxian/article/details/17188737
> “研究”可以圍繞兩種方式組織;一種是基礎領域,例如機器學習、電腦保安、網路等,這是種重要且有力的研究方式。而在MSRNExT,我們選擇了另一種——並非圍繞領域,而更聚焦於特定目標和問題。例如我們能消弭網路間使用者的語言障礙嗎?社交媒體如何保障隱私?是否能開發出新的處理器技術延續摩爾定律?一組研究員圍繞這些具體的目標展開研究。
    去年我曾請教Ivan Sutherland如何做出好研究,他說有三個要素:首先要有個好問題,其次需要資金支援,最後,也是最難尋覓的,是需要一位睿智的管理者。

> 還是沒有想到解決方案

程式猿必知的Android WebView的幾個坑: https://www.douban.com/note/529538454/?type=like
Android效能優化中避免Overdraw的9大技巧: http://www.maiziedu.com/article/10516/
http://www.cnblogs.com/lee0oo0/p/4026774.html: http://www.cnblogs.com/lee0oo0/p/4026774.html