使用webView加载html作为app引导页面

用html的理由

引导页用原生的Android开发也可以做,为何要用html呢?这么麻烦,岂不是增加开发复杂度?
其实不是的,我觉得使用webview+html原因有二:

1、动画效果

因为html结合javascript、css等可以做出一些非常漂亮的动画效果,但是如果用原生开发,机会很难实现。

2、分工

团队开发,可以让对html掌握的比较好的同事负责这一部分的开发,原生开发的人就专心开发其他的功能,而不是纠结于如何实现这种好看的效果。

实现

启动页代码

public class WebViewActivity extends Activity {
    private WebView myWebView;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webview);

        myWebView = (WebView) findViewById(R.id.myWebView);
        myWebView.getSettings().setJavaScriptEnabled(true);
        // 与js交互,JavaScriptinterface 是个接口,与js交互时用到的,这个接口实现了从网页跳到app中的activity 的方法,特别重要
        myWebView.addJavascriptInterface(new JavaScriptinterface(this), "android");
        myWebView.loadUrl("file:///android_asset/index.html");

    }
}

其中的接口实现为:

public class JavaScriptinterface {

    Activity mActivity;

    public JavaScriptinterface(Activity mActivity) {
        this.mActivity = mActivity;
    }

    /** 与js交互时用到的方法,在js里直接调用的
     *
     * 需要加上@android.webkit.JavascriptInterface注解,否则可能失效
     * */
    @android.webkit.JavascriptInterface
    public void startActivity() {
        Intent intent = new Intent();
        intent.setClass(mActivity, MainActivity.class);
        mActivity.startActivity(intent);
        mActivity.finish();
    }
}

index.html中关键代码(调用接口中定义的startActivity方法)

<script type="text/javascript">
        $('#entry_button').on('click',function() {
            android.startActivity();
        });
    </script>

其中,entry_button是最后一页的按钮id,这段代码意思是,点击entry_button按钮,就猝发startActivity函数。

注:

1、html、css等文件是放在assets文件夹下的,通过webview加载。
2、源代码以及apk
3、还有一个更炫的例子,原文链接

最后一页效果如图:

这里写图片描述

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值