最终演示效果,包含所有代码内容 + 常见错误问题处理
点击服务协议、隐私政策,跳转到相关网页,
点击同意进入游戏,不同意关闭应用
一,添加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;@Overrideprotected 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(){@Overridepublic 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(){@Overridepublic 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();}@Overridepublic 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:layout_width=