我在片段中有一个webview,并拥有自己的Bridgecallback服务。
我有一个javascript文件 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(){});
};
在我的HTML文件 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中这样做的方法,想知道如果android有任何直接的方法,任何人都可以帮助我吗?
我见过其他答案,但不知道如何调用我的TriggerEventsService.js - webview.loadUrl (“我应该打电话到什么地方?”);
答案 0 :(得分:1)
我见过其他答案,但不知道如何调用我的TriggerEventsService.js - webview.loadUrl(“我应该打电话到什么地方?”);
假设postEventHibernate()
是一个全局JavaScript函数,它将是:
webview.loadUrl("javascript:postEventHibernate();");
FWIW,my book涵盖了这一点,但大部分此类具体资料都在the preview edition of my advanced WebView
chapter中。