Aanroepen van javascript-functies in een webweergave van activiteitsklasse

Bewerken: deze knipbeurt werkte op het einde. Ik had dit eerder geprobeerd, maar ondervond een scopingprobleem met mijn javascript. Ik had appBack() gedefinieerd in document.onready. Eenvoudig die functie opnieuw inscannen naar * venster. * AppBack = function (). Ik heb het bedrijf gedaan. Ik hoop dat dit iemand helpt.

public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        WebView.loadUrl("javascript:appBack()");
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

In een webview-applicatie wordt de back-navigatie afgehandeld met een aangepaste JS-functie appBack() Ik heb geprobeerd een manier te vinden om de fysieke fysieke back-knop te onderscheppen en in plaats daarvan die javascript-functie aan te roepen. Hier is mijn activiteitenbestand. Het is erg basic, stelt een webview in en luistert naar de klik op de back-knop. Momenteel wanneer de gebruiker op deze fysieke terugknop klikt, wordt mWebView.goBack() uitgevoerd. Dat is waar ik graag JavaScript zou willen uitvoeren: appBack ()

package com.stgeorgeplc.app;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.webkit.WebView;


public class StGeorgePLCliteActivity extends Activity {
    /** Called when the activity is first created. */
    WebView mWebView;
    @Override

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mWebView = (WebView) findViewById(R.id.webview);
        mWebView.getSettings().setJavaScriptEnabled(true);
        mWebView.getSettings().setBuiltInZoomControls(true);

        mWebView.loadUrl("file:///android_asset/www/index.html");
    }

    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) {
            mWebView.goBack();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    } 
}
6
Wauw! Bedankt, dit werkte
toegevoegd de auteur amrit_neo, de bron
@wade montague, kunt u alstublieft uw oplossing als een antwoord plaatsen, zodat de vraag niet als onbeantwoord zal verschijnen.
toegevoegd de auteur Vijay C, de bron
Probleem opgelost zie bewerk:
toegevoegd de auteur wade montague, de bron

Geen antwoorden

0