2017-04-17 6 views
0

私は断片的にwebviewを持っていて、私自身のBridgecallbackサービスを持っています。どのようにアンドロイドの断片からjavascript関数を呼び出すには?

私はTriggerEventsService.js私のHTMLファイルで

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(){}); 
    }; 

index.htmlを

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

私はネイティブのAndroidから直接この関数を呼び出すことができますジャバスクリプトファイルを持っています方法?

のiOS私はこの行っている:それは正常に動作

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

を私はアンドロイドが何らかの直接的なを持っている場合、誰もが私を助けることができます考え出す、iOSの中でそれを行う方法を知っています方法 ?

私は他の回答を見て私のTriggerEventsService.jsを呼び出す方法がわからなかったしている - webview.loadUrl(「は、私がここに正確に何を呼び出す必要があり?」);

+0

[JavaScriptコードをAndroidのネイティブコードから呼び出す方法](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()は、グローバルJavaScript関数であると仮定すると、これは次のようになります。この特定の材料のほとんどはthe preview edition of my advanced WebView chapterであるにもかかわらず

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

FWIWは、これは、my bookで覆われています。

+0

ああ私は 'webview.loadUrl(" javascript:postEventHibernate() ");'ちょうど8時間から離れた半分の列を試していました!!どうもありがとう ! **によって解決さ: - ** 'webView.setWebViewClient(新しいWebViewClient(){ 公共ボイドonPageFinished(WebViewの表示、文字列のURL){ webView.loadUrl( "ジャバスクリプト:postEventHibernate();");} }); ' – DroidDev

関連する問題