当前位置: 首页 > java >正文

Cocos Creater打包安卓App添加隐私弹窗详细步骤+常见问题处理

最终演示效果,包含所有代码内容 + 常见错误问题处理

点击服务协议、隐私政策,跳转到相关网页,

点击同意进入游戏,不同意关闭应用

一,添加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=
http://www.xdnf.cn/news/453.html

相关文章:

  • 第33讲|遥感大模型在地学分类中的初探与实战
  • PyTorch :优化的张量库
  • 数据从辅存调入主存,页表中一定存在
  • websocket和SSE学习记录
  • 得物官网sign签名逆向分析
  • Qt QWidget介绍及学习方法路线分享
  • 服务治理-服务注册
  • 【记录】服务器安装ffmpeg
  • 在 Amazon Graviton 上运行大语言模型:CPU 推理性能实测与调优指南
  • 整合SSM——(SpringMVC+Spring+Mybatis)
  • 10.thinkphp的响应
  • Android studio开发——room功能实现用户之间消息的发送
  • sqilite_web安装使用
  • 实现Azure Function安全地请求企业内部API返回数据
  • Rust网络编程实战:全面掌握reqwest库的高级用法
  • Meteonorm8-免费使用教程(详细教程-免费)
  • 数据结构(6)——队列
  • STM32N6如何调试下载代码
  • MCP认证难题破解:常见技术难题实战分析与解决方案
  • 哈夫曼编码和哈夫曼树
  • Dify快速入门之构建工作流
  • Python语法系列博客 · 第4期[特殊字符] 函数的定义与使用:构建可复用的模块
  • java ai 图像处理
  • php实现zip压缩
  • Linux:基础IO---动静态库
  • python 库 下载 ,整合在一个小程序 UIUIUI
  • Grouped Query Attention (GQA) PyTorch实现
  • 单片机如何通过串口与上位机进行数据交换
  • RAG vs. CAG vs. Fine-Tuning:如何为你的大语言模型选择最合适的“脑力升级”?
  • 使用EXCEL绘制平滑曲线