直播APP开发完成后,demo中Android利用Webview加载h5页面的问题

一般情况下,做直播APP开发的公司大部分都会提供demo(演示案例)供客户进行体验,因为这样可以让客户更加直观的体验程序里各式各样的功能或机制。那么在直播APP开发完成之后,在demo中关于Android利用Webview加载h5页面的问题需要格外注意一下,接下来就给大家简单分享下。
1.webview的内存泄漏。
解决方案:不要把webview添加到布局中,在需要的时候,通过代码addview添加进来,在activity销毁的时候再removeView移除掉。
2.权限问题,例如,已经添加了权限之后,调用相机,文件回调不了。
解决方案:

settings.setAllowContentAccess(true);// 是否可访问ContentProvider的资源,默认值 true
settings.setAllowFileAccess(true);// 是否可访问本地文件,默认值 true
settings.setAllowFileAccessFromFileURLs(false);// 是否允许通过file url加载的Javascript读取本地文件,默认值 false

3.缩放功能,setBuiltInZoomControls(true)和setDisplayZoomControls(true)同时开启后,finish当前actiivty会闪退。
解决方案:setBuiltInZoomControls(true)只开启这一个即可。
4.Android9.0使用webview时,显示页面无法加载。
解决方案:9.0系统默认不支持http访问,所以需要手动设置支持明文

android:usesCleartextTraffic="true"
<application
    android:name="AppContext"
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:usesCleartextTraffic="true"
    android:largeHeap="true"
    ></ application>

5.返回问题。例如,demo身份认证h5页面,没认证前需要一步一步返回,认证成功直接返回个人中心。
解决方案:

判断当前url
@Override
public void onBackPressed() {
    if (isNeedExitActivity()) {
        finish();
    } else {
        if (canGoBack()) {
            mWebView.goBack();
        } else {
            finish();
        }
    }
}
private boolean isNeedExitActivity() {
    if (mWebView != null) {
        String url = mWebView.getUrl();
        if (!TextUtils.isEmpty(url)) {
            return url.contains("g=Appapi&m=Auth&a=success")//身份认证成功页面
                    || url.contains("g=Appapi&m=Family&a=home");//家族申请提交成功页面
        }
    }
    return false;
}

以上内容就是直播APP开发完成后,关于demo中Android利用Webview加载h5页面的问题的大概解决流程,其他与直播APP开发相关的内容会在后续的文章更新中与大家分享,敬请期待。
声明:本文由作者原创,转载请注明出处及原文链接。

发布了119 篇原创文章 · 获赞 27 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/yun_bao_2144899870/article/details/102702211