2012-03-06 24 views
0

私のアプリに子ブラウザがロードされています。リンクをクリックすると、onLocationChangeが2回呼び出されます。なぜそれが起こっているのかに関する提案はありますか?onLocationChangedが2回呼び出されました

javascrptコードは

function openAppTerms() { 
     var options = { 
      'showLocationBar' : true, 
      'pageDesc':'Application Terms' 
    }; 
     window.plugins.childBrowser.onLocationChange=function(newurl){ 

      if(newurl == "no") { 
      } 
      else if(newurl.indexOf("mailto")>=0){ 
       var succcallback = function(result) { 
        //alert("Mail sent"); 
        window.plugins.childBrowser.close(); 
       }; 
       var errorcallback = function(e) { 
        //alert("error:" + e); 
        window.plugins.childBrowser.close(); 
       }; 
       window.plugins.webintent.sendEmail({ 
        mailSubject : 'CPS Mobile App', 
        mailRecepients: '[email protected]', 
        //mailBody: href1 
        mailBody: ' ' 
       }, succcallback, errorcallback); 
       window.plugins.childBrowser.close(); 
      } 
      else { 
       alert(newurl); 
      } 
     }; 
    window.plugins.childBrowser.showStaticPage("app_terms.html",options); 

} 

とJavaのコードです:

@Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      super.onPageStarted(view, url, favicon);    
      String newloc; 
      if (url.startsWith("http:") || url.startsWith("https:") || url.startsWith("mailto:")) { 
       newloc = url; 
      } 
      else 
      { newloc = "no";} 


      try { 
       JSONObject obj = new JSONObject(); 
       obj.put("type", LOCATION_CHANGED_EVENT); 
       obj.put("location", newloc); 

       sendUpdate(obj, true); 

      } catch (JSONException e) { 
       Log.d("ChildBrowser", "This should never happen"); 
      } 
     } 

答えて

0

私はsuper.onPageStarted(ビュー、URL、ファビコン)と考えています。これの理由です。

+0

私はそのコードを削除しようとしました。しかし、それは何の違いもありません。 – Khush