Android中使⽤WebView加载本地html并⽀持运⾏JS代码和⽀持 缩放
场景
Openlayers中使⽤Image的rotation实现车辆定位导航带转⾓(判断车辆图⽚旋转⾓度): 现在要将其封装进APP中,打包成车载导航的APP。
烧烤车注:
实现
⾸先新建⼀个Application,然后再布局⽂件中添加⼀个webview组件
可以直接设计视图拖拽,或者通过代码添加,并且设置⼀个id <WebView
android:id="@+id/webview"
android:layout_width="409dp"
android:layout_height="729dp"
tools:layout_editor_absoluteX="1dp"
tools:layout_editor_absoluteY="1dp"
tools:ignore="MissingConstraints" />
</straintlayout.widget.ConstraintLayout>
然后在项⽬⽬录下新建assets⽬录,将html以及所需要的整个的资源与js⽂件等都复制到该⽬录下
来到MainActivity中的onCreate⽅法中,通过id获取组件,并设置其WebChromeClient
//获取webview
WebView webView = findViewById(R.id.webview);
/
/设置为ChromeClinet 才能执⾏js代码
WebChromeClient webChromeClient = new WebChromeClient();
webView.setWebChromeClient(webChromeClient);
WebViewClient与WebChromeClient
然后设置开启js⽀持和⽀持缩放
//设置开启js⽀持螺旋伞齿轮
// 是否⽀持缩放
最后加载本地html
//加载本地html
webView.loadUrl("file:///android_asset/offLineTileMap.html");
这⾥的offLineTileMap.html就是上⾯放在assets下要加载显⽰的页⾯。完整代码
package com.badao.webviewdemo;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
siro 1300public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
钢帘线setContentView(R.layout.activity_main);
矿泉水瓶盖//获取webview
WebView webView = findViewById(R.id.webview);
//设置为ChromeClinet 才能执⾏js代码
WebChromeClient webChromeClient = new WebChromeClient();
webView.setWebChromeClient(webChromeClient);
//设置开启js⽀持
// 是否⽀持缩放
//加载本地html
webView.loadUrl("file:///android_asset/offLineTileMap.html");
笔式摄像机
}
}
运⾏app查看效果