Skip to content

Releases: youlookwhat/ByWebView

1.2.2

28 Jan 03:05
Compare
Choose a tag to compare

处理 JavaScript 中三种消息框:警告框、确认框、提示框。

OnTitleProgressCallback里增加了onJsAlertonJsConfirmonJsPrompt,默认已实现,也可手动处理:

    /**
     * JavaScript alert 警告框
     * 默认返回false,使用代码里的默认处理
     * 如果要手动处理,需要返回true!且需要执行 result.confirm();
     */
    public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
        return false;
    }

    /**
     * JavaScript confirm 确认框
     * 默认返回false,使用代码里的默认处理
     * 如果要手动处理,需要返回true!且需要执行 result.confirm();
     */
    public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
        return false;
    }

    /**
     * JavaScript prompt 提示框
     * 默认返回false,使用代码里的默认处理
     * 如果要手动处理,需要返回true!且需要执行 result.confirm();
     */
    public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
        return false;
    }

1.2.1

29 Aug 13:59
Compare
Choose a tag to compare

可手动处理视频全屏播放时的横竖屏:

OnTitleProgressCallback里增加了onHandleScreenOrientation(boolean isShow)

    /**
     * 全屏显示时处理横竖屏。
     * 默认返回false,全屏时为横屏,全屏还原后为竖屏
     * 如果要手动处理,需要返回true!
     *
     * @param isShow 是否显示了全屏视频 ture点击了全屏显示,false全屏视频还原
     */
    public boolean onHandleScreenOrientation(boolean isShow) {
        return false;
    }

1.2.0

21 Dec 11:45
Compare
Choose a tag to compare
  • 1.升级到AndroidX
  • 2.targetSdkVersion 由28升级到29

两处升级对项目不影响~

1.1.6

29 Oct 03:45
Compare
Choose a tag to compare

增加可以直接获取ByWebView的方法 get(),避免获取ByWebView一定要loadUrl()的情况

  /**
   * 直接获取ByWebView,避免一定要调用loadUrl()才能获取ByWebView的情况
   */
  public ByWebView get() {
      return new ByWebView(this);
  }

附loadUrl()方法:

  /**
   * loadUrl()并获取ByWebView
   */
  public ByWebView loadUrl(String url) {
      ByWebView byWebView = get();
      byWebView.loadUrl(url);
      return byWebView;
  }

1.1.5

24 Sep 14:30
Compare
Choose a tag to compare

fix 修复h5页面无故竖屏或横屏的情况 #35

    /**
     * 修复可能部分h5无故竖屏问题,如果h5里有视频全屏播放请禁用
     */
    public void setFixScreenPortrait(boolean fixScreenPortrait) {
        if (mWebChromeClient != null) {
            mWebChromeClient.setFixScreenPortrait(fixScreenPortrait);
        }
    }

    /**
     * 修复可能部分h5无故横屏问题,如果h5里有视频全屏播放请禁用
     */
    public void setFixScreenLandscape(boolean fixScreenLandscape) {
        if (mWebChromeClient != null) {
            mWebChromeClient.setFixScreenLandscape(fixScreenLandscape);
        }
    }

1.1.4

06 Sep 06:29
Compare
Choose a tag to compare

fix 修复在模拟器上全屏播放视频时可能的错误问题 #32

1.1.3

09 Oct 10:34
Compare
Choose a tag to compare

删除request.grant(request.getResources());

由于: https://m.iqiyi.com/v_u7ik3ppd6g.html#vfrm=30-26-15-7 ,第一次加载会导致闪退

1.1.2

10 Aug 13:29
Compare
Choose a tag to compare
  • 增加 onPageStarted()
  • 增加 onReceivedSslError(),返回true表示自己处理的。

1.1.1

03 Aug 06:30
Compare
Choose a tag to compare

fix 系统 getDefaultVideoPoster()可能为null的情况 :#19

1.1.0

31 Jul 03:51
Compare
Choose a tag to compare

去掉 setCustomWebViewLayout

通过setCustomWebView()设置自定义View。

与ToolBar联动示例:

        CoordinatorLayout container = findViewById(R.id.coordinatorLayout);
        CoordinatorLayout.LayoutParams lp = new CoordinatorLayout.LayoutParams(-1, -1);
        // 设置behavior属性 和 ToolBar属性里设置 layout_scrollFlags="scroll|enterAlways"
        lp.setBehavior(new AppBarLayout.ScrollingViewBehavior());
        NestedScrollWebView nestedScrollWebView = new NestedScrollWebView(this);
        byWebView = ByWebView
                .with(this)
                .setWebParent(container, 1, lp)
                .setCustomWebView(nestedScrollWebView)// 设置自定义WebView
                .useWebProgress(ContextCompat.getColor(this, R.color.coloRed))
                .setOnTitleProgressCallback(onTitleProgressCallback)
                .setOnByWebClientCallback(onByWebClientCallback)
                .addJavascriptInterface("injectedObject", new MyJavascriptInterface(this))
                .loadUrl(mUrl);

具体可见Demo:CoordinatorWebActivity