2016-08-31 25 views
0

如何将网页的java脚本中存在的函数调用到android应用程序中。我想要显示由android应用程序内的此功能返回的结果。将网页的java脚本中的函数调用到android应用程序中

例如getTalukas函数返回Strings.I的列表我想在Android应用程序中显示它。

<script type="text/javascript"> 
//<![CDATA[ 
var PageMethods = function() { 
PageMethods.initializeBase(this); 
this._timeout = 0; 
this._userContext = null; 
this._succeeded = null; 
this._failed = null; 
} 
PageMethods.prototype = { 
_get_path:function() { 
var p = this.get_path(); 
if (p) return p; 
else return PageMethods._staticInstance.get_path();}, 
getTalukas:function(id,succeededCallback, failedCallback, userContext) { 
return this._invoke(this._get_path(), 'getTalukas',false,{id:id},succeededCallback,failedCallback,userContext); }, 
getVillages:function(did,tid,succeededCallback, failedCallback, userContext) { 
return this._invoke(this._get_path(), 'getVillages',false,{did:did,tid:tid},succeededCallback,failedCallback,userContext); }, 
getKnos:function(ptxt,vid,did,tid,succeededCallback, failedCallback, userContext) { 
return this._invoke(this._get_path(), 'getKnos',false,{ptxt:ptxt,vid:vid,did:did,tid:tid},succeededCallback,failedCallback,userContext); }, 
getSnos:function(ptxt,vid,did,tid,succeededCallback, failedCallback, userContext) { 
return this._invoke(this._get_path(), 'getSnos',false,{ptxt:ptxt,vid:vid,did:did,tid:tid},succeededCallback,failedCallback,userContext); }, 
getKnames:function(ptxt,vid,opt,did,tid,succeededCallback, failedCallback, userContext) { 
return this._invoke(this._get_path(), 'getKnames',false,{ptxt:ptxt,vid:vid,opt:opt,did:did,tid:tid},succeededCallback,failedCallback,userContext); }, 
getSnames:function(ptxt,vid,opt,did,tid,succeededCallback, failedCallback, userContext) { 
return this._invoke(this._get_path(), 'getSnames',false,{ptxt:ptxt,vid:vid,opt:opt,did:did,tid:tid},succeededCallback,failedCallback,userContext); }, 
call8a:function(kno,vid,dn,tn,vn,did,tid,succeededCallback, failedCallback, userContext) { 
return this._invoke(this._get_path(), 'call8a',false,{kno:kno,vid:vid,dn:dn,tn:tn,vn:vn,did:did,tid:tid},succeededCallback,failedCallback,userContext); }, 
call712:function(sno,vid,dn,tn,vn,tc,dc,did,tid,succeededCallback, failedCallback, userContext) { 
return this._invoke(this._get_path(), 'call712',false,{sno:sno,vid:vid,dn:dn,tn:tn,vn:vn,tc:tc,dc:dc,did:did,tid:tid},succeededCallback,failedCallback,userContext); }, 
getCTSOs:function(id,succeededCallback, failedCallback, userContext) { 
return this._invoke(this._get_path(), 'getCTSOs',false,{id:id},succeededCallback,failedCallback,userContext); }, 
getCTSOLink:function(did,tid,succeededCallback, failedCallback, userContext) { 
return this._invoke(this._get_path(), 'getCTSOLink',false,{did:did,tid:tid},succeededCallback,failedCallback,userContext); }} 
PageMethods.registerClass('PageMethods',Sys.Net.WebServiceProxy); 
PageMethods._staticInstance = new PageMethods(); 
PageMethods.set_path = function(value) { PageMethods._staticInstance.set_path(value); } 
PageMethods.get_path = function() { return PageMethods._staticInstance.get_path(); } 
PageMethods.set_timeout = function(value) { PageMethods._staticInstance.set_timeout(value); } 
PageMethods.get_timeout = function() { return PageMethods._staticInstance.get_timeout(); } 
PageMethods.set_defaultUserContext = function(value) { PageMethods._staticInstance.set_defaultUserContext(value); } 
PageMethods.get_defaultUserContext = function() { return PageMethods._staticInstance.get_defaultUserContext(); } 
PageMethods.set_defaultSucceededCallback = function(value) { PageMethods._staticInstance.set_defaultSucceededCallback(value); } 
PageMethods.get_defaultSucceededCallback = function() { return PageMethods._staticInstance.get_defaultSucceededCallback(); } 
PageMethods.set_defaultFailedCallback = function(value) { PageMethods._staticInstance.set_defaultFailedCallback(value); } 
PageMethods.get_defaultFailedCallback = function() { return PageMethods._staticInstance.get_defaultFailedCallback(); } 
PageMethods.set_enableJsonp = function(value) { PageMethods._staticInstance.set_enableJsonp(value); } 
PageMethods.get_enableJsonp = function() { return PageMethods._staticInstance.get_enableJsonp(); } 
PageMethods.set_jsonpCallbackParameter = function(value) { PageMethods._staticInstance.set_jsonpCallbackParameter(value); } 
PageMethods.get_jsonpCallbackParameter = function() { return PageMethods._staticInstance.get_jsonpCallbackParameter(); } 
PageMethods.set_path("Home.aspx"); 
PageMethods.getTalukas= function(id,onSuccess,onFailed,userContext) {PageMethods._staticInstance.getTalukas(id,onSuccess,onFailed,userContext); } 
PageMethods.getVillages= function(did,tid,onSuccess,onFailed,userContext) {PageMethods._staticInstance.getVillages(did,tid,onSuccess,onFailed,userContext); } 
PageMethods.getKnos= function(ptxt,vid,did,tid,onSuccess,onFailed,userContext) {PageMethods._staticInstance.getKnos(ptxt,vid,did,tid,onSuccess,onFailed,userContext); } 
PageMethods.getSnos= function(ptxt,vid,did,tid,onSuccess,onFailed,userContext) {PageMethods._staticInstance.getSnos(ptxt,vid,did,tid,onSuccess,onFailed,userContext); } 
PageMethods.getKnames= function(ptxt,vid,opt,did,tid,onSuccess,onFailed,userContext) {PageMethods._staticInstance.getKnames(ptxt,vid,opt,did,tid,onSuccess,onFailed,userContext); } 
PageMethods.getSnames= function(ptxt,vid,opt,did,tid,onSuccess,onFailed,userContext) {PageMethods._staticInstance.getSnames(ptxt,vid,opt,did,tid,onSuccess,onFailed,userContext); } 
PageMethods.call8a= function(kno,vid,dn,tn,vn,did,tid,onSuccess,onFailed,userContext) {PageMethods._staticInstance.call8a(kno,vid,dn,tn,vn,did,tid,onSuccess,onFailed,userContext); } 
PageMethods.call712= function(sno,vid,dn,tn,vn,tc,dc,did,tid,onSuccess,onFailed,userContext) {PageMethods._staticInstance.call712(sno,vid,dn,tn,vn,tc,dc,did,tid,onSuccess,onFailed,userContext); } 
PageMethods.getCTSOs= function(id,onSuccess,onFailed,userContext) {PageMethods._staticInstance.getCTSOs(id,onSuccess,onFailed,userContext); } 
PageMethods.getCTSOLink= function(did,tid,onSuccess,onFailed,userContext) {PageMethods._staticInstance.getCTSOLink(did,tid,onSuccess,onFailed,userContext); } 
//]]> 
</script> 

回答

0

如何从应用程序到 页面和页面返回jsonhttp request

+0

我意识到这一点。但是,我想探索新的方式来做到这一点没有http请求。 – Nik

+0

如何使用Firebase – m0aaz

+0

感谢您的建议,但我想以我提到的方式解决问题。 – Nik

1

另一种选择是,你可以创建你的应用程序中的功能,可以从JavaScript调用(注意:要小心,或者你可以创建一个安全问题)

下面的例子是从https://developer.android.com/guide/webapps/webview.html

采取

关键部分:

public class WebAppInterface { 
    Context mContext; 

    /** Instantiate the interface and set the context */ 
    WebAppInterface(Context c) { 
     mContext = c; 
    } 

    /** Show a toast from the web page */ 
    @JavascriptInterface 
    public void showToast(String toast) { 
     Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show(); 
    } 
} 

主程序:

WebView webView = (WebView) findViewById(R.id.webview); 
webView.addJavascriptInterface(new WebAppInterface(this), "Android"); 

HTML页面:

<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" /> 

<script type="text/javascript"> 
    function showAndroidToast(toast) { 
     Android.showToast(toast); 
    } 

+0

令人敬畏的方式。但我不希望对网站进行任何修改,只想获得我可以用当前网站代码实现的方式。 – Nik

0

可能是Web视图的JavaScript大桥是你在找什么!你可以使用这个JSBridge或者自己实现JS桥。

相关问题