跳到主要内容

WebView

WebView 界面使用 Player Network SDK 的 WebView 组件或原生系统浏览器来打开游戏内的特定网页,适用于 Android、iOS 和 PC 平台。WebView 接口传递 OpenID 和 token 至服务器,从而将 Player Network 账号服务与打开的网页连接起来。WebView 可用于打开网页版调查问卷、营销活动页面、游戏内 H5 玩家社区等。

WebView 界面采用系统的 WebView 组件实现,JS 和原生相互调用。

注意

JS 和 Native 的交互部分,请参见 INTLWebViewSample.html

WebView 配置

使用 WebView 界面之前,集成 SDK 并根据以下信息配置 INTLConfig.ini 文件里的 WebView 模块。

字段说明备注
WEBVIEW_FULLSCREEN_ENABLE是否全屏
默认:关闭
选填
WEBVIEW_PORTRAIT_HIDEBAR_ENABLE当竖屏时,是否隐藏菜单栏
默认:0,不隐藏
选填
WEBVIEW_LANDSCAPE_HIDEBAR_ENABLE当横屏时,是否隐藏菜单栏
默认:0,不隐藏
选填
WEBVIEW_SHARE_CHANNELJS 的分享渠道,支持 Facebook,LINE,System
当设置为 NONE 时,不显示分享按钮
当此字段设置为任意值时,启用系统分享。
默认:Facebook, Line, System。
选填
WEBVIEW_URL_KEY_FILTER过滤相关登录状态关键字的 URL
使用逗号 (,) 分隔字段,如:accesstoken,username
如果不需要过滤,输入NONE
目前不支持Windows平台。
在 Android 平台上为ExtraJson参数中设置isSameProcessWebView=trueOpenURL
选填
CONFIG_KEY_BACK_DISABLE是否禁用返回按钮,(只限 Android)
默认:0,不禁用
选填
WEBVIEW_DEFAULT_WIDTHWindows 登录 WebView 的宽度
单位:%
Windows 必填
WEBVIEW_DEFAULT_HEIGHTWindows 登录 WebView 的高度
单位:%
Windows 必填
WEBVIEW_NAVIGATION_BUTTON_DISABLE是否禁用返回和系统浏览器按钮,
只限 Windows 默认:0, 不禁用
Windows 必填
WEBVIEW_UI_COLOR_THEMEWebView 风格的框架 (dark/light),
只限 Windows 平台默认:暗
Windows 必填
WEBVIEW_VIEWPORT_DPIWebview 每英寸点数,设置浏览器的长宽,只限 Windows
默认:96
Windows 必填
WEBVIEW_ALWAYS_ON_TOPMOST_WINDOWWebView 总是在最前面,只限 Windows
默认:0,不总在前面
Windows 选填
WEBVIEW_ACCEPTED_LANGUAGE_LIST提供网页 WebView 支持的语言,
只限 Windows
更多语言配置的信息,可以查看 语言表。默认:en-US, zh-CN, ja-JP, ko-KR
Windows 选填
WEBVIEW_SHARE_BUTTON_DISABLE隐藏/显示分享(通过系统浏览器打开)按钮
只限 Windows
默认值:0, 显示分享(通过系统浏览器打开)按钮;
1- 隐藏分享(通过系统浏览器打开)按钮, 0 - 显示分享(通过系统浏览器打开)按钮
Windows 选填

Android Webview 打开 HTTP 网页

警告

出于安全的需要,Android 官方强烈建议使用 HTTPS 协议而不是 HTTP 协议。在 Android 系统上使用 WebView 加载 HTTPS 网页更为安全。

如果必须加载 HTTP,可以使用以下的解决方案:

  • A. 不使用 android:networkSecurityConfig: 这个标签是用来指定一个网络安全配置的 XML 文件。不使用这个配置则任何 HTTP 和 HTTPS 都可以打开,不会有任何限制。这种方案的缺点是可能会加载到不安全的网页。

  • B. 使用 android:networkSecurityConfig: 的同时加载 HTTP 网页:将 targetSdkVersion 设置到 26 以下(不包括 26)。Android 系统将 targetSdkVersion 设置到 26 以下的话,不会限制 HTTP 网页的加载。这种方案的缺点是 app 的实现和上架 Google Play 会有相应的限制。

  • C. 使用 android:networkSecurityConfig 的同时将 targetSdkVersion 设置到 26 或以上:设置 HTTP 访问的允许名单来绕开 Android 系统访问 HTTP 网页的限制。这种方案的缺点是允许名单新增了网页域名的话,需要重新发布 app。

  • D. 使用 android:networkSecurityConfig 的同时将 targetSdkVersion 设置到 26 或以上:在 networkSecurityConfig 文件里面把默认拦截 HTTP 关掉(在 base-config 节点设置 cleartextTrafficPermitted="true" 或者把整个节点删掉。这种方案的效果和方案 A 一样,缺点也是可能会加载到不安全的网页。具体代码如下:

    <base-config cleartextTrafficPermitted="true">
    <trust-anchors>
    <certificates src="system"/>
    </trust-anchors>
    </base-config>

以上方案都需要在 AndroidManifest.xml 文件中设置 android:usesClearTextTraffic="true"

回调

API函数定义
AddWebViewResultObserver注册 Player Network SDK WebView 模块 WebViewResult 的回调。用于处理 OpenUrl 等接口的回调。
RemoveWebViewResultObserver移除 WebViewResult 的回调。

WebView 函数

API函数定义
OpenUrl打开网址
GetEncryptUrl返回加密的输入 URL
CallJS从原生调用 JS 代码