2017-04-17 6 views
0

저는 조각으로 된 webview를 가지고 있으며 내 자신의 Bridgecallback 서비스를 가지고 있습니다. 어떻게 안드로이드 조각에서 자바 스크립트 함수를 호출?

나는 나의 HTML 파일

function postEventHibernate(){ 
      require(['TriggerEventsService'], function(ui){ 
       ui.postHibernate(); 
      }); 
     } 

내가 네이티브 안드로이드에서 직접이 함수를 호출 할 수 된 index.html에서 자바 스크립트 파일을 TriggerEventsService.js

define(function(require){ 

    var Service = require('BridgeService'); 
    var TriggerEventsService = new Service({ 
     name: "TriggerEventsService", 
     timeout : 3000 
    }); 

    //Public API 
    TriggerEventsService.postHibernate = function(){ 
     this.execute("postHibernate", {"event" : "App becoming inactive"}, function(){}, function(){}); 
    }; 

이 방법?

아이폰 OS을 나는이 짓을! 그것은 잘 작동

NSString *jsString = [NSString stringWithFormat:@"require(['TriggerEventsService'], 
function(ui){ui.postHibernate();});"]; 
             [self.webView evaluateJavaScript:jsString completionHandler:nil]; 

나는 안드로이드가 직접적인있는 경우 누군가가 나를 도울 수 파악, 아이폰 OS에서 그것을 할 수있는 방법을 알고 방법?

내가 다른 답변을 볼 수 있지만 내 TriggerEventsService.js 호출하는 방법을 잘 아니 었습니다 -webview.loadUrl ("는 정확히 내가 여기서 뭘 불러야을?");

+0

[Java 코드에서 JavaScript 함수를 호출하는 방법] 가능한 중복 (android native) (http://stackoverflow.com/questions/19814843/how-to-call-a-javascript-function-from-java-code- android-native) – Zoe

+0

@ LunarWatcher 다른 답변을 본 적이 있지만 내 문제를 해결할 수 없습니다. 이 방법으로 나를 도울 수 있습니까? webview.loadUrl ("정확하게 여기에서해야 할 내용"); – DroidDev

답변

1

내가 다른 답변을 볼 수 있지만 내 TriggerEventsService.js 호출하는 방법을 잘 아니 었습니다 - webview.loadUrl ("무엇을 정확히 내가 여기 불러야을?");

postEventHibernate() 글로벌 자바 스크립트 함수가 있다고 가정하면,이 것이 특정 물질의 대부분은 the preview edition of my advanced WebView chapter에 불구하고

webview.loadUrl("javascript:postEventHibernate();"); 

FWIW, 이것은, my book에 덮여있다.

+0

아아 나는 8 시간에서'webview.loadUrl ("javascript : postEventHibernate()");'단지 세미 열을 시도했다 !! 고마워요! **에 의해 해결 : - ** 'webView.setWebViewClient (새 WebViewClient() { 공공 무효 onPageFinished (웹보기보기, 문자열 URL) { webView.loadUrl ("자바 스크립트 : postEventHibernate();"); } });' – DroidDev