Android与Javascript交互示例(二)
MainActivity如下:
[java]
package cn.testjavascript;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.widget.Button;
import android.app.Activity;
/**
* Demo描述:
* JavaScript与Android中的方法
* 的相互调用
*
* 参考资料:
* */
public class MainActivity extends Activity {
private WebView mWebView;
private Button mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init(){
//以下为Javascript调用Java--------------------------
mWebView=(WebView) findViewById(R.id.webView);
initWebViewSettings();
//加载本地Html文件
mWebView.loadUrl("file:///android_asset/test.html");
//注意:
//addJavascriptInte易做图ce方法中第二参数
//它表示我们的java对象javaClass的别名.这样js就可以通过该别名来调用Android中的方法
//即js代码中的:
//window.testjs.firstFunction
//window.testjs.secondFunction
JavaClass javaClass=new JavaClass(MainActivity.this);
mWebView.addJavascriptInte易做图ce(javaClass, "testjs");
//以下为Java调用Javascript--------------------------
//注意:
//在调用带参数的Javascript方法时
//参数的写法,如此处的
//mWebView.loadUrl("javascript:javacalljswithargs("+"'stringArg'"+")");
//不加单引号是错误的
mButton=(Button) findViewById(R.id.button);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//调用Javascript中的无参方法
mWebView.loadUrl("javascript:javacalljs()");
//调用Javascript中带参数的方法
mWebView.loadUrl("javascript:javacalljswithargs("+"'stringArg'"+")");
}
});
}
private void initWebViewSettings(){
mWebView.setVerticalScrollBarEnabled(false);
mWebView.setHorizontalScrollBarEnabled(false);
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.getSettings().setSupportZoom(true);
mWebView.getSettings().setDomStorageEnabled(true);
mWebView.getSettings().setPluginsEnabled(true);
mWebView.requestFocus();
mWebView.getSettings().setUseWideViewPort(true);
mWebView.getSettings().setLoadWithOverviewMode(true);
mWebView.getSettings().setSupportZoom(true);
mWebView.getSettings().setBuiltInZoomControls(true);
}
}
package cn.testjavascript;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.webkit.WebView;
import android.widget.Button;
import android.app.Activity;
/**
* Demo描述:
* JavaScript与Android中的方法
* 的相互调用
*
* 参考资料:
*
*/
public class MainActivity extends Activity {
private WebView mWebView;
private Button mButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
init();
}
private void init(){
//以下为Javascript调用Java--------------------------
mWebView=(WebView) findViewById(R.id.webView);
initWebViewSettings();
//加载本地Html文件
mWebView.loadUrl("file:///android_asset/test.html");
//注意:
//addJavascriptInte易做图ce方法中第二参数
//它表示我们的java对象javaClass的别名.这样js就可以通过该别名来调用Android中的方法
//即js代码中的:
//window.testjs.firstFunction
//window.testjs.secondFunction
JavaClass javaClass=new JavaClass(MainActivity.this);
mWebView.addJavascriptInte易做图ce(javaClass, "testjs");
//以下为Java调用Javascript--------------------------
//注意:
//在调用带参数的Javascript方法时
//参数的写法,如此处的
//mWebView.loadUrl("javascript:javacalljswithargs("+"'stringArg'"+")");
补充:移动开发 , Android ,