2017-01-18 10 views
0

Я обнажая @JavascriptInterface функции обратного вызова для WebView, которые работают нормально при отладке приложений через Android Studio, однако если приложение установлено через APK обратные вызовы JavaScript завершаться:Android WebView JavaScript обратных вызовов неудачу в APK без Proguard

«Uncaught TypeError: NativeApp.onProgress не является функция»

Я знаю, что неправильные правила Proguard могут привести к этой проблеме, но в этом случае проект не использует Proguard и проблема возникает при отладке и релиз APKS.

Если я проверяю APK, методы присутствуют.

public class MyServiceWithEmbeddedWebView {  
    ... 

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

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

    ... 
} 

Любые идеи?

ответ

0

Изменение области применения методов @JavascriptInterface до public позволило решить проблему.

Так это работает для APK установки:

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

Это не работает для APK установки, но работает как чавканье при развертывании на Android студии отладчика:

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

Как раздражает !