2016-08-31 23 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橋。

相關問題