जावास्क्रिप्ट से एंड्रॉइड - जावास्क्रिप्ट, एंड्रॉइड, पैरामीटर-पासिंग से मूल्य पास करना और वापस करना

प्रिय सभी मैं बस गुजर रहा हूं और कुछ मूल्य वापस कर रहा हूंजावास्क्रिप्ट और एंड्रॉइड से। मैं एंड्रॉइड को मूल्य जावास्क्रिप्ट पास करने में सक्षम हो सकता था। मेरी समस्या यह है कि मैं फिर से मूल्य वापस नहीं कर सका। यह मेरा स्निपेट है। क्या कोई व्यक्ति मेरी सहायता कर सकता है

एचटीएमएल और स्क्रिप्ट

     <html>
<head>
<script src="phonegap-1.3.0.js" type="text/javascript"></script>
<script type="text/javascript">
function invoke(param1,param2)
{
alert("Hai");
//invoking the JavascriptBridge registered under the "jb" namespace
var result = jb.callMe(param1,param2);

//doing something with the return value, it should be concatenation
//of the two input parameters
alert(result);

}
</script>
</head>
<body>
<form id = "returning">
<h2>Demonstrating Android Javascript-To-Java Bridge</h2>

<input type="button" value="Invoke Bridge" onclick="invoke("Hello","World");"/>
</form>
</body>

एंड्रॉयड:

    public class ReturnAndroidValActivity extends Activity
{
private WebView webView;

public ReturnAndroidValActivity()
{

}

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
}

@Override
protected void onStart()
{
super.onStart();
}

@Override
protected void onResume()
{
try
{
super.onResume();

//render the main screen
// this.setContentView(ViewHelper.findLayoutId(this, "main"));

//Find the WebView control
//this.webView = (WebView)ViewHelper.findViewById(this, "webview");
setContentView(R.layout.main);
this.webView = (WebView)findViewById(R.id.mybrowser);



//Enable Javascript...This is needed so that Javascript is allowed to execute
//inside the WebView
WebSettings webSettings = this.webView.getSettings();
webSettings.setJavaScriptEnabled(true);

//Register the "Javascript Bridge" class under the "jb" namespace
//this class can be invoked from the HTML/Javascript side
this.webView.addJavascriptInterface(new JavascriptBridge(), "jb");

//Register the WebChromeClient to assist with alerts/debugging
this.webView.setWebChromeClient(new MyWebChromeClient());

//Load assets/html/index.html resource into the WebView control
this.webView.loadUrl("file:///android_asset/www/index.html");
}
catch(Exception e)
{
e.printStackTrace(System.out);
}
}

final class JavascriptBridge
{
public String callMe(String param1, String param2)
{
//Generate the returnValue from the bridge
String toastValue = param1 + "," + param2;

//Setup the Toast
Toast toast = Toast.makeText(ReturnAndroidValActivity.this, toastValue, Toast.LENGTH_LONG);

//Show the Toast
toast.show();

return toastValue;
}
}

/**
* Provides a hook for calling "alert" from javascript. Useful for
* debugging your javascript.
*/
final class MyWebChromeClient extends WebChromeClient
{
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result)
{
Log.d("JavascriptBridge", message);

resu lt.confirm();
return true;
}




}

}

उत्तर:

उत्तर № 1 के लिए 1

जावास्क्रिप्ट में एक और फ़ंक्शन को परिभाषित करें:

<script>
function my_callback_function(param){
alert("Called with value: " + param);
}
</script>

फिर आप इस फ़ंक्शन को वेबव्यू के माध्यम से देशी कोड में कॉल करते हैं जैसे कि:

webView.loadUrl("javascript:my_callback_function("TheValue")");

संबंधित सवाल
सबसे लोकप्रिय