2017-02-22 5 views
-1

前の投稿はandroid studio webview get data and onfinishです。私は実際にそれらの答えから私が望むものを得ることができません。たぶん私はそれをもっとはっきりと尋ねるべきでしょう。私は実際にコンテンツページを読み込むためにwebviewを使用しました。コンテンツページの中には、自分で作成したローカルHTMLでもあるリンクがいくつかあります。その流れは、Android webview現在のURLを取得し、文字列が含まれているかどうかを確認してください

android activity - > webview - > content page - >ゲームページです。

実際には、ゲームのページでローカル変数marksを取得します。そこで、exitボタンを作成しました。このボタンは、ページを閉じてアンドロイドのアクティビティに戻り、marksをアンドロイドのアクティビティに戻すために使用されます。

私はいくつかの情報を自分で検索し、window.close()が機能しないことを発見しました。そこで、現在のURLを変更して、終了ボタンがクリックされたことを示します。 URLからmarksを抽出してandroidアクティビティに保存します。しかし、それは私のコードではうまくいきません、私はそれがおそらくメソッドが使用されていると思います、私がコンテンツページにいるとき。私は本当に問題を見つけることができないので、誰かがこれを行うのに役立つことを願っています。アンドロイドで

マイアクティビティ:

<div class="exit" onclick="finish()">Exit</div> 

私は、変数を返すようにfinish()機能を使用するつもりです:

private WebView webview; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    //setContentView(R.layout.activity_main); 

    webview = new WebView(this); 
    webview.getSettings().setJavaScriptEnabled(true); 

    try {    
     webview.loadUrl("file:///android_asset/index.html"); 
     webview.setWebViewClient(new WebViewClient() 

     @Override 
     public boolean shouldOverrideUrlLoading(WebView view, String url) 
     { 
      if (url.contains("?marks=")){ 
      finish();} // close activity 
      else{ 
      view.loadUrl(url);} 

      return true; 
     }); 
    } 
    catch(Exception ex) 
    { 
     ex.printStackTrace(); 
    } 
    setContentView(webview); 
} 

マイ終了ボタンがdiv要素である私は、以下のようにコードを編集しましたアンドロイドのアクティビティに戻ってWebページを閉じます。

function finish() { 
    document.location.href= window.location.href +"?marks=" + marks; 
} 

答えて

0

オーケー私はwebview.loadUrlが最後に配置されなければならないよう質問は、解決されると思います。 webview.setWebViewClient(new WebViewClient()

webview.setWebViewClient(new WebViewClient() 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) 
    { 
     if (url.contains("?marks=")){ 
     finish();} // close activity 
     else{ 
     view.loadUrl(url);} 

     return true; 
    }); 

    webview.loadUrl("file:///android_asset/index.html"); 
関連する問題