最终演示效果,包含所有代码内容 + 常见错误问题处理
点击服务协议、隐私政策,跳转到相关网页,
点击同意进入游戏,不同意关闭应用
一,添加Activity,命名为MyLaunchActivity
二,编写MyLaunchActivity.java的内容
package com.cocos.game.launch;
import android.os.Bundle;
import androidx.activity.EdgeToEdge;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
import fish.create.light.R;
import android.widget.FrameLayout;
import android.webkit.WebView;
import android.widget.TextView;
import android.widget.Button;
import android.view.View;
import android.webkit.WebSettings;
import android.view.KeyEvent;
import android.content.Intent;
import android.app.Activity;
import com.cocos.game.AppActivity;
//AppCompatActivity
public class MyLaunchActivity extends Activity {
// @Override
// protected void onCreate(Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
// EdgeToEdge.enable(this);
// setContentView(R.layout.my_launch);
// ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
// Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
// v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
// return insets;
// });
// }
private static String _agreedSymbol = "AGREE_HQ_SERVICE";
private MyPrivacyDialog _agrementDialog=null;
private FrameLayout _bgLayout=null;
private TextView _titleTxt=null;
private WebView _webView=null;
private Button _exitBtn=null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_launch);
initShow();
initDialog();
}
private void initShow(){
_bgLayout=findViewById(R.id.launch_con_node);
_titleTxt=findViewById(R.id.launch_title);
_exitBtn=findViewById(R.id.launch_exitBtn);
_exitBtn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
if(_agrementDialog!=null){
_agrementDialog.show();
}
_bgLayout.setVisibility(View.GONE);
}
});
_webView=findViewById(R.id.launch_WebView);
WebSettings settings = _webView.getSettings();
settings.setJavaScriptEnabled(true);
settings.setDefaultTextEncodingName("UTF-8");
//自适应手机屏幕
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
_bgLayout.setVisibility(View.GONE);
}
private void initDialog(){
boolean states= (boolean) SPUtil.get(getApplication(),_agreedSymbol,false);
if (states==false)
{
_agrementDialog = new MyPrivacyDialog(this);
_agrementDialog.show();
_agrementDialog.setOnBtnClickListener(new MyPrivacyDialog.OnBtnClickListener(){
@Override
public void onClick(int type) {
switch (type) {
case MyPrivacyDialog.ARGEEMENT_TEXT_CLICK://查看用户协议
loadUrl(getResources().getString(R.string.url_service),getResources().getString(R.string.user_service));
break;
case MyPrivacyDialog.SECRET_TEXT_CLICK://查看隐私协议
_agrementDialog.hide();
loadUrl(getResources().getString(R.string.url_private),getResources().getString(R.string.user_private));
break;
case MyPrivacyDialog.NOT_ARGEE_BTN_CLICK://不同意按钮
_agrementDialog.dismiss();
finish();
break;
case MyPrivacyDialog.ARGEE_BTN_CLICK: //同意按钮
_agrementDialog.dismiss();
SPUtil.put(getApplication(),_agreedSymbol,true);
jumpGameActivity();
break;
}
}
});
}
else{
jumpGameActivity();
}
}
private void loadUrl(String url,String str){
_bgLayout.setVisibility(View.VISIBLE);
_titleTxt.setText(str);
_webView.loadUrl(url);
_agrementDialog.hide();
}
public void jumpGameActivity() {
// 闪屏结束后,跳转到游戏界面
Intent intent = new Intent(this, AppActivity.class);
startActivity(intent);
this.finish();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
}
return true;
}
}
三,编写my_launch.xml内容
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:l