2017-01-18 5 views
0

Ich aussetzt @JavascriptInterface Rückrufe für eine WebView, die gut funktionieren, wenn die App über Android Studio debuggen, aber wenn die App über APK installiert ist die JavaScript-Rückrufe nicht mit:Android WebView JavaScript Rückrufe nicht in APK ohne Proguard

„Uncaught Typeerror: NativeApp.onProgress ist keine Funktion“

mir bewusst bin, dass falsche Proguard Regeln dieses Problem führen können, aber in diesem Fall ist das Projekt nicht Proguard verwenden und das Problem tritt mit Debug und veröffentlichen APKS.

Wenn ich die APKs überprüfe, sind die Methoden vorhanden.

public class MyServiceWithEmbeddedWebView {  
    ... 

    public createWebview() { 
    ... 
    webView.addJavascriptInterface(this, "NativeApp"); 
    ... 
    } 

    @JavascriptInterface 
    void onProgress(int loaded, int total) { 
     ... 
    } 

    ... 
} 

Irgendwelche Ideen?

Antwort

0

Das Ändern des Umfangs der @JavascriptInterface Methoden zu public löste das Problem.

So funktioniert dies für eine APK installieren:

@JavascriptInterface 
public void onProgress(int loaded, int total) { 
    // this is public 
} 

Dies gilt nicht für eine APK arbeiten installieren, funktioniert aber wie ein Champion, wenn sie vom Android Studio-Debugger eingesetzt:

@JavascriptInterface 
void onProgress(int loaded, int total) { 
    // this is NOT public 
} 

Wie ärgerlich !

Verwandte Themen