注意api版本 注意api版本 注意api版本
demo全景图
1.安卓app端代码
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.webkit.JavascriptInterface;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import androidx.annotation.Nullable;
import com.coral3.aarentrance.R;
import com.coral3.myfragment.MainActivity;
public class HomeActivity extends Activity {
public WebView webView;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
}
@Override
protected void onResume() {
super.onResume();
webView = (WebView)findViewById(R.id.home_web_view);
webView.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
});
// 支持App内部javascript交互
webView.getSettings().setJavaScriptEnabled(true);
// 自适应屏幕
webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
webView.getSettings().setLoadWithOverviewMode(true);
// 设置可以支持缩放
webView.getSettings().setSupportZoom(true);
// 开启DOM缓存,开启LocalStorage存储(html5的本地存储方式)
webView.getSettings().setDomStorageEnabled(true);
/*
*添加js接口,参数1是本地类名,参数2是标记;H5调用需要 "window.标记.类名中的方法名" 才能调用
*/
webView.addJavascriptInterface(this, "android");
webView.loadUrl("file:///android_asset/h5/index.html");
}
@JavascriptInterface
public void setToken(String token){
Log.d("yue-tag", "跳转原生App成功-传来参数为" + token);
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("token", token);
startActivity(intent);
finish();
}
}
2.h5端(js方)
<script>
export default {
data() {
return {
title: 'Hello-h5项目'
}
},
onLoad() {
},
methods: {
goApp(){
console.log("跳转安卓原生");
//调用Android的setToken()方法
var result =window.android.setToken("hello wutongyue");
console.log(result);
}
}
}
</script>