文档章节

WebView 在 APP 中的使用

兔之
 兔之
发布于 2016/02/26 21:06
字数 396
阅读 108
收藏 6

微信的内嵌浏览器使用的是 WebView,当查看分享时打开的页面就是使用 WebView 呈现的。手机淘宝客户端也在页面中使用了 WebView。淘宝页面这种经常变化很大,对动画和流程性没要求的话,会优先使用 WebView。所以 App 的原则是经常变用 WebView,不经常变就 Native。

可以通过下列方式判断 APP 使用的哪种技术。打开开发者模式———显示布局边界。若是整块区域有边界,则是 WebView。如果每个元素都有边界,则不是。

输入图片说明

WebView 中请求页面

在微信朋友圈中查看分享时,会调到这样一个页面。其实就是在这个框架中去请求数据。

输入图片说明

下面模拟这种方案。

package timenull.friendcircle;

import android.os.Bundle;
import android.app.Activity;
import android.view.KeyEvent;
import android.webkit.WebView;

public class MainActivity extends Activity {
    private WebView webview;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        webview = new WebView(this);
        webview.getSettings().setJavaScriptEnabled(true);
        webview.loadUrl("http://fuzhii.com");
        //设置Web视图
        setContentView(webview);
    }

    @Override
    //设置回退
    //覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
            webview.goBack();
            return true;
        }
        return false;
    }
}

分为下面几步

1.在 Activity 中实例化 WebView 组件

webview = new WebView(this);

2.调用 WebView 的 loadUrl() 方法,设置 WebView 要显示的网页。

webview.loadUrl("http://fuzhii.com");

3.调用 Activity 的 setContentView() 方法显示网页视图

4.另外需要在 AndroidManifest.xml 文件中添加访问网络的权限

<uses-permission android:name="android.permission.INTERNET"/>

最后效果如下

输入图片说明

WebView 优点

  • 和前端 JS 无缝结合
  • 变更上线快,运营方便

参考

https://www.zhihu.com/question/35683612/answer/64628667

© 著作权归作者所有

共有 人打赏支持
兔之
粉丝 68
博文 247
码字总数 95896
作品 7
深圳
程序员
私信 提问
android 使用webview加载网页问题

我在做图片站http://www.mimi199.com时要将其移动站打包成app, 我使用的是webview来加载网页(本来想使用phonegap来做来,但是还是太麻烦了), 具体代码如下: protected void onCreate(Bu...

yangjiyue0520
2017/11/09
0
0
android 使用webview加载网页问题

我在做图片站http://www.mimi199.com时要将其移动站打包成app, 我使用的是webview来加载网页(本来想使用phonegap来做来,但是还是太麻烦了), 具体代码如下: protected void onCreate(Bu...

yangjiyue0520
2017/10/30
0
0
Android WebView使用的技巧与一些坑

Android WebView使用的技巧与一些坑 码农明明桑2015-10-18178 阅读 android 随着手机性能的提高,以及iOS和Android两个平台的普及,更多的App都会选择两个平台的App都进行开发,在有些时候,...

码农明明桑
2015/10/18
0
0
Webview设置Cookie

应用场景 APP应用的某些功能, 需要调用内嵌的WebView去加载某个URL使用. 但用户在手机APP已经成功登录过了. 这时, 如果在内置浏览器去打开网页还需要用户再输入登录一次, 似乎显得不够人性化...

王先森oO
2018/08/10
0
0
Android WebView独立进程解决方案

App中大量Web页面的使用容易导致App内存占用巨大,存在内存泄露,崩溃率高等问题,WebView独立进程的使用是解决Android WebView相关问题的一个合理的方案。 为什么要采用WebView独立进程 An...

浪淘沙xud
2017/12/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

多表查询

第1章 多表关系实战 1.1 实战1:省和市  方案1:多张表,一对多  方案2:一张表,自关联一对多 1.2 实战2:用户和角色 (比如演员和扮演人物)  多对多关系 1.3 实战3:角色和权限 (比如...

stars永恒
今天
1
0
求推广,德邦快递坑人!!!!

完全没想好怎么来吐槽自己这次苦逼的德邦物流过程了,只好来记一个流水账。 从寄快递开始: 2019年1月15日从 德邦物流 微信小app上下单,截图如下: 可笑的是什么,我预约的是17号上门收件,...

o0无忧亦无怖
昨天
6
0
Mac Vim配置

1.升级 vim   我自己 MacBook Pro 的系统还是 10.11 ,其自带的 vim 版本为 7.3 ,我们将其升至最新版: 使用 homebrew : brew install vim --with-lua --with-override-system-vim 这将下...

Pasenger
昨天
7
0
vmware安装Ubuntu上不了网?上网了安装不了net-tools,无法执行ifconfig?

1.重新设置网络适配器还是不行,如下指定nat 2.还需要指定共享网络,我是在无线环境下 3.无法执行ifconfig https://packages.ubuntu.com/bionic/net-tools到这个网站下载net-tools的deb文件...

noob_chr
昨天
3
0
解决SVN:E210007无法协商认证机制

svn:E210007 svn: Cannot negotiate authentication mechanism 执行下面代码即可 sudo yum install cyrus-sasl cyrus-sasl-plain cyrus-sasl-ldap...

临江仙卜算子
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部