您的位置:首页 > 移动开发

WebView的简单使用,附加一点JS交互操作

2017-07-25 20:10 573 查看
/**
*                  ___====-_  _-====___
*            _--^^^#####//      \\#####^^^--_
*         _-^##########// (    ) \\##########^-_
*        -############//  |\^^/|  \\############-
*      _/############//   (@::@)   \\############\_
*     /#############((     \\//     ))#############\
*    -###############\\    (oo)    //###############-
*   -#################\\  / VV \  //#################-
*  -###################\\/      \//###################-
* _#/|##########/\######(   /\   )######/\##########|\#_
* |/ |#/\#/\#/\/  \#/\##\  |  |  /##/\#/  \/\#/\#/\#| \|
* `  |/  V  V  `   V  \#\| |  | |/#/  V   '  V  V  \|  '
*    `   `  `      `   / | |  | | \   '      '  '   '
*                     (  | |  | |  )
*                    __\ | |  | | /__
*                   (vvv(VVV)(VVV)vvv)
*                        神兽保佑
*                       代码无BUG!
*/
public class MainActivity extends Activity {    private TextView tvTitle;    private ProgressBar bar;    private WebView webView;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        webView = (WebView) findViewById(R.id.webview);        tvTitle = (TextView) findViewById(R.id.tvTitle);        bar = (ProgressBar) findViewById(R.id.bar);        // 加载一个远程服务器上的HTMl资源        // webView.loadUrl("http://172.17.70.50:8080/index.html");        // 加载一个本地网页 file:///android_asset 固定写法        webView.loadUrl("file:///android_asset/index.html");        // 设置WebView是否支持Js与android之间进行交互        webView.getSettings().setJavaScriptEnabled(true);        // this 相当于你的学名 test 相当于你的小名        webView.addJavascriptInterface(MainActivity.this, "test");        webView.setWebChromeClient(new WebChromeClient() {            @Override            public void onReceivedTitle(WebView view, String title) {                super.onReceivedTitle(view, title);                tvTitle.setText(title);            }            @Override            public void onProgressChanged(WebView view, int newProgress) {                super.onProgressChanged(view, newProgress);                bar.setProgress(newProgress);            }        });        webView.setWebViewClient(new WebViewClient() {            @Override            public void onPageStarted(WebView view, String url, Bitmap favicon) {                super.onPageStarted(view, url, favicon);                bar.setVisibility(View.VISIBLE);            }            @Override            public void onPageFinished(WebView view, String url) {                super.onPageFinished(view, url);                bar.setVisibility(View.GONE);            }        });    }    public void btnAndroidCallJs(View v) {        // android 调用js 里面的代码        webView.loadUrl("javascript:androidCallJs('fuck!')");    }    // @JavascriptInterface 注解让js识别该方法    @JavascriptInterface    public void sayHello(String msg) {// 属于android的        Toast.makeText(this, "我被js调用了 : " + msg, 0).show();    }}

index.html界面

<!DOCTYPE html><html>    <head>        <meta charset="UTF-8">        <title>测试android与js交互</title>                        <script>//js调用android里面的方法function jsCallAndroid() {    test.sayHello("你好");}//android调用js方法function androidCallJs(msg) {    alert("我被android调用了 : " + msg);}</script>                            </head>    <body>                <input type="submit" value="js调用android里面的方法" onclick="jsCallAndroid()"/>                    </body></html>

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: