# Android 接入教程
# 引入文件到项目中
将提供的 jar 或 aar 文件添加到项目。
# 修改 manifest 配置
在 AndroidManifest.xml 中声明相应的权限以及浏览器所在的 Activity
<!--begin 如果接入高清视频功能需添加的权限 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
<uses-permission android:name="android.permission.BROADCAST_STICKY" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.REORDER_TASKS" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<!--end 如果接入高清视频功能需添加的权限 -->
<!-- webview activity -->
<activity
android:name="com.tencent.slugsdk.webview.X5WebViewActivity"
android:exported="false"
android:configChanges="orientation|screenSize|keyboardHidden|smallestScreenSize|screenLayout"
android:screenOrientation="sensor"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustPan"
android:process=":ingame_inner_webview"
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen">
<meta-data android:name="android.max_aspect" android:value="2.2" />
<meta-data android:name="notch.config" android:value="portrait|landscape" />
<meta-data android:name="android.notch_support" android:value="true" />
<intent-filter>
<action android:name="com.tencent.slugsdk.webview.X5WebViewActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<!-- 微信结构化分享需要中转activity -->
<activity
android:name="com.tencent.slugsdk.webview.SlugJumpShareActivity"
android:theme="@android:style/Theme.Translucent.NoTitleBar">
</activity>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 接入高清视频功能注意事项:
- 在 build.gradle 文件中添加
dependencies {
implementation fileTree(dir: 'libs', include: ['*.aar'])
}
defaultConfig {
ndk {
abiFilter "armeabi-v7a"
}
}
repositories {
flatDir {
dirs 'libs' //this way we can find the .aar file in libs folder
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
- 如果接入高清视频功能,使用时需要从混淆脚本中过滤如下包名:
-keep class com.tencent.qqlive.ck.** {*;}
-keep class com.tencent .qqlive downloadproxy .**
-keep class com.tencent .qqlive .moduleupdate.**
-keep class com.tencent.qqlive. multimedia.multimedia.**
-keep class com.tencent.ads.** {*;}
-keep class com.tencent.omg.** {*;}
-keep class cn.com.iresearch.dau {*;}
-keep class pi.** {*;}
-keep class com.qq.taf.** {*;}
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 拼接用户参数
首先游戏客户端需在微社区首页 URL 上拼接以下参数:
参数名 | 描述 | 必须 |
---|---|---|
areaid | 账号类型:1(微信),2(QQ) | 是 |
partition | 区服 id,若无则传 0 | 是 |
platid | 平台类型:0(iOS),1(Android) | 是 |
roleid | 角色 id | 是 |
lng | 用户当前位置:经度 | 否 |
lat | 用户当前位置:纬度 | 否 |
示例一:
首页 URL:https://sy.qq.com/hyrzol/ingame/
拼接后 URL:https://sy.qq.com/hyrzol/ingame/?areaid=1&platid=0&partition=8195&roleid=2306687434798319382
示例二:
首页 URL:https://sy.qq.com/zhuoyao/ingame/?router=moment
拼接后 URL:https://sy.qq.com/zhuoyao/ingame/?router=moment&areaid=2&partition=0&platid=1&roleid=40520350780&lng=113.944527&lat=22.547869
# 调用 Slug SDK
unity 调用请参考 Unity Android 接入文档
import com.tencent.slugsdk.webview.X5WebViewAdapter; //引入浏览器sdk类
/*
*@currentActivity: 当前activity
*@url: 需要打开的url(带用户参数的首页 URL)
*@supportedOrientations:支持横竖屏(1:只支持横屏,2:只支持竖屏,3:横竖屏都支持)
*@qqAppid:设置游戏的QQ Appid(建议设置),设置之后QQ分享的接口就会直接调用QQ互联的接口(无需登录态),否则就会调用MSDK的接口(需要登录态)
*@wxAppid:设置游戏的微信Appid(建议设置,微社区接论坛时涉及到微信委托授权,需要游戏的微信Appid),设置之后微信分享的接口就会直接调用微信开放平台的接口(无需登录态),否则就会调用MSDK的接口(需要登录态)
**/
X5WebViewAdapter.openIngameCommunityByUrl(Activity currentActivity, String url, int supportedOrientations, String qqAppid, String wxAppid)
如果需要从H5页面跳转到游戏某界面的功能,需要传递游戏中转activity类名,可以使用下面的方法:
/*
* @className 从H5页面跳转到游戏的某个界面,如果不需要可以设置为"",H5页面跳转到游戏的某个界面时,会先跳转到游戏的该Activity(即className)再由该Activity作为中转跳转到具体的游戏界面,可*以通过getIntent().getStringExtra("routeInfo")获取跳转的路由信息
* @finishShouldSendMsgToGame 浏览器webview finish时向游戏发送close消息,不需要可以传false,X5WebViewActivity finish时向游戏发送finish消息,需要先设置@className参数
*/
X5WebViewAdapter.openIngameCommunityByUrl(Activity currentActivity, String url, int supportedOrientations, String qqAppid, String wxAppid, String className, boolean finishShouldSendMsgToGame)
如果需要设置webview背景颜色,可以使用下面的方法,默认webview是透明的背景
/*
* @webviewBackground 背景颜色,比如:#ff3300
*/
openIngameCommunityByUrl(Activity currentActivity, String url, int supportedOrientations, String qqAppid, String wxAppid, String className, boolean finishShouldSendMsgToGame, String webviewBackground)
如果需要使用广点通播放广告,需添加广点通appid
/*
*@gdtAppid 广点通appid
*/
openIngameCommunityByUrl(Activity currentActivity, String url, int supportedOrientations, String qqAppid, String wxAppid, String className, boolean finishShouldSendMsgToGame, String webviewBackground, String gdtAppid)
//使用资源预加载功能,如果需要使用此功能一般在application或游戏大厅调用,需找开发人员提前准备预加载配置文件地址
X5WebViewOfflineCache.initX5webViewCacheProcess(Context context, String configUrl); //预加载离线资源
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 从微社区跳转到游戏界面例子
# 游戏新建一个中转的 Activity,类似于:
package com.tencent.mobilegame;
public class IngameJumpActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
String routeInfo = getIntent().getStringExtra("routeInfo"); /*获取H5页面传过来的参数,跳转到游戏界面*/
}
}
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 在 AndroidManifest.xml 中配置:
<activity
android:name="com.tencent.mobilegame.IngameJumpActivity"
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen"
android:screenOrientation="landscape">
</activity>
1
2
3
4
5
2
3
4
5
# 接入微社区时传递 className
:
...
intent.putExtra("className", "com.tencent.mobilegame.IngameJumpActivity");
...
startActivity(intent);
1
2
3
4
2
3
4
← Slug SDK v1 iOS 接入教程 →