h5android开发书籍,Android开发app与web(h5)交互,点我点我

准备html文件

test.xml

function sum(a,b){

return a+b;

}

function s(){

var result =window.android.back();

document.getElementById("p").innerHTML=result;

}

调用本地方法

点击

希望你能看得懂,看不懂也没事,写h5前端的人应该懂的

把它扔到assents文件夹下即可

WebActivity

public class MainActivity extends AppCompatActivity {

public static final String TAG = "MainActivity";

private WebView mWebView;

private TextView tv_app_to_h5;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

mWebView = (WebView) findViewById(R.id.webView);

tv_app_to_h5 = findViewById(R.id.tv_app_to_h5);

//加载本地asset下的test.html

mWebView.loadUrl("file:///android_asset/test.html");

WebSettings webSettings = mWebView.getSettings();

//这个必须

webSettings.setJavaScriptEnabled(true);

//后面的android 是要和html的window.android.back() 中间的android名一样(可以改为任意名,一致就好),后面的back()就是Android端定的方法

mWebView.addJavascriptInterface(new JsInteration(), "android");

mWebView.setWebViewClient(new WebViewClient() {

@Override

public boolean shouldOverrideUrlLoading(WebView view, String url) {

if (url.equals("file:///android_asset/test2.html")) {

//拦截点击事件

Log.e(TAG, "shouldOverrideUrlLoading: " + url);

//startActivity(new Intent(MainActivity.this,Main2Activity.class));

return true;

} else {

mWebView.loadUrl(url);

return false;

}

}

});

tv_app_to_h5.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View view) {

//app调h5方法示例

mWebView.evaluateJavascript("sum(1,2)", new ValueCallback() {

@Override

public void onReceiveValue(String value) {

//h5返回的结果给app

Log.e(TAG, "onReceiveValue value=" + value);

}

});

}

});

}

//h5调app方法示例

public class JsInteration {

@JavascriptInterface

public String back() {

Log.e(TAG, "back");

//app返回结果给h5

return "hello world";

}

}

}

布局文件就不写了。看代码注释基本也懂了,关键在于配合。可以把这篇文章转发给前端看。

顺便说一下:如果发现互相传值看不到或者出错,请都用String类型来定义

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值