Android 极光推送与 WebView 日常问题小结

简介: Android 日常问题小结!

      小菜整理一下最近遇到的两个小问题;

JPush {no value for is provided}

      极光推送在日常的应用中应用广泛,集成简单送达率较高,小菜刚开始集成时很方便,但是随着项目的逐渐变大,分包和组件化等应用比较多,此时单独出 push Module 应用时,会遇到如下问题:

      此时虽然会提示问题,但是程序的运行与打包以及推送方面也都是正常;但有问题总是要解决的;

      小菜首先检查 JPUSH_APPKEYJPUSH_PKGNAME 等配置是否正确;一切正常,核对了官网的集成配置也是正确的,之后差了很多资料,尝试在分包的 Module 下也配置对应参数,即可正常;

manifestPlaceholders = [
    JPUSH_PKGNAME: applicationId,
    JPUSH_APPKEY : "95hh351b9cc0a8b16e3f5d00", //JPush 上注册的包名对应的 Appkey.
    JPUSH_CHANNEL: "developer-default", //暂时填写默认值即可.
]

      小菜理解是极光推送在分 Module 时,需要在当前 Module 和引入极光推送的 Module 中均引入包名和 JPUSH_APPKEY 等才可正常应用。

WebView 禁止 VideoView 手势

      WebView 可以播放普通网页或视频网页,方便快捷,不仅如此,视频播放器自带的操作按键都支持,此时视频 url 主要包括 < video > 标签;

      小菜用 WebView 播放视频网页,一般 < video > 都是默认自带开始暂停等操作按键;小菜需要关闭这些操作按键,但是 WebView 并没有提供对应的方法;小菜只能从视频源上来处理,首先了解一下 < video > 标签;

controls    向用户显示控件,比如播放按钮等操作按键
autoplay    视频自动播放
loop        视频循环播放
muted       视频静音播放
src         视频资源 url
height      视频播放器高度
width        视频播放器的宽度

      controls 属性用来控制操作按键,若 < video > 取消该属性即可满足小菜需求;

 < video name="media" autoplay muted loop >

      小菜在本地写一段 < html > 标签,手动设置 < video >controls 去掉,并将 url 添加进入,借助 loadData 方法调用;而此时需要获取视频属性,包括时长等可以通过编辑 js 来获取,与普通 html 无异;

String myHtmlStr = "<html><head><meta name=\"viewport\" content=\"width=device-width\"></head><body><video "
    + "name=\"media\" autoplay muted loop><source src="
    + URL
    + "></video></body></html>";

mWebView.loadData(myHtmlStr, "text/html", null);

      Tips: 小菜在各个机型上测试,发现部分 vivo 设备加载视频后不会自动播放,查找之后发现需要设置 WebSettingsetMediaPlaybackRequiresUserGesture 属性,即可自动播放;而该属性需要在 SDK>=17 才可使用,需注意。

WebSettings settings = mWebView.getSettings();
settings.setMediaPlaybackRequiresUserGesture(false);

      小菜这次整理的内容较少,但却是在日常开发中遇到的问题,希望遇到相同问题的朋友可以避免!

目录
相关文章
|
API Android开发 数据安全/隐私保护
解决android webview 加载http url 失败 net::ERR_CLEARTEXT_NOT_PERMITTED 错误
解决android webview 加载http url 失败 net::ERR_CLEARTEXT_NOT_PERMITTED 错误
898 0
|
8天前
|
程序员 开发工具 Android开发
Android|WebView 禁止长按,限制非白名单域名的跳转层级
如何限制 WebView 仅域名白名单网址能随意跳转,并禁用长按选择文字。
18 2
|
5月前
|
安全 JavaScript 前端开发
kotlin开发安卓app,JetPack Compose框架,给webview新增一个按钮,点击刷新网页
在Kotlin中开发Android应用,使用Jetpack Compose框架时,可以通过添加一个按钮到TopAppBar来实现WebView页面的刷新功能。按钮位于右上角,点击后调用`webViewState?.reload()`来刷新网页内容。以下是代码摘要:
|
5月前
|
JavaScript 前端开发 Android开发
kotlin安卓在Jetpack Compose 框架下使用webview , 网页中的JavaScript代码如何与native交互
在Jetpack Compose中使用Kotlin创建Webview组件,设置JavaScript交互:`@Composable`函数`ComposableWebView`加载网页并启用JavaScript。通过`addJavascriptInterface`添加`WebAppInterface`类,允许JavaScript调用Android方法如播放音频。当页面加载完成时,执行`onWebViewReady`回调。
|
4月前
|
Web App开发 JavaScript 前端开发
Android端使用WebView注入一段js代码实现js调用android
Android端使用WebView注入一段js代码实现js调用android
88 0
|
5月前
|
Web App开发 移动开发 前端开发
52. 【Android教程】网页视图:WebView
52. 【Android教程】网页视图:WebView
80 1
|
5月前
|
安全 网络安全 API
kotlin安卓开发JetPack Compose 如何使用webview 打开网页时给webview注入cookie
在Jetpack Compose中使用WebView需借助AndroidView。要注入Cookie,首先在`build.gradle`添加WebView依赖,如`androidx.webkit:webkit:1.4.0`。接着创建自定义`ComposableWebView`,通过`CookieManager`设置接受第三方Cookie并注入Cookie字符串。最后在Compose界面使用这个自定义组件加载URL。注意Android 9及以上版本可能需要在网络安全配置中允许第三方Cookie。
|
6月前
|
XML Android开发 数据格式
安卓和webview交互
安卓和webview交互
58 0
|
6月前
|
XML Android开发 数据格式
安卓和webview交互
安卓和webview交互
101 1
|
12月前
|
小程序 Android开发 iOS开发
在钉钉小程序中安卓无法打开webview
在钉钉小程序中安卓无法打开webview
195 1