51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 1744|回复: 0
打印 上一主题 下一主题

WebView 在 APP 中的使用

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-3-6 15:58:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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


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


WebView 中请求页面

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


下面模拟这种方案。

  1. package timenull.friendcircle;

  2. import android.os.Bundle;
  3. import android.app.Activity;
  4. import android.view.KeyEvent;
  5. import android.webkit.WebView;

  6. public class MainActivity extends Activity {
  7.     private WebView webview;

  8.     @Override
  9.     public void onCreate(Bundle savedInstanceState) {
  10.         super.onCreate(savedInstanceState);
  11.         webview = new WebView(this);
  12.         webview.getSettings().setJavaScriptEnabled(true);
  13.         webview.loadUrl("http://fuzhii.com");
  14.         //设置Web视图
  15.         setContentView(webview);
  16.     }

  17.     @Override
  18.     //设置回退
  19.     //覆盖Activity类的onKeyDown(int keyCoder,KeyEvent event)方法
  20.     public boolean onKeyDown(int keyCode, KeyEvent event) {
  21.         if ((keyCode == KeyEvent.KEYCODE_BACK) && webview.canGoBack()) {
  22.             webview.goBack();
  23.             return true;
  24.         }
  25.         return false;
  26.     }
  27. }
复制代码

分为下面几步

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 无缝结合
  • 变更上线快,运营方便


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-4-26 11:51 , Processed in 0.066697 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表