一:首先你得服务器域名必须申请ssl证书,因为苹果手机要下载描述性配置文件要求你这个域名必须https加密
二:创建一个profile.mobileconfig文件,用苹果手机去访问你这个文件的链接,会自动弹出这个。剩下的我就不多说了。我把代码发出来,你直接放你服务器里就完事了
记得改目标网址和图标

<?php
// 生成随机 UUID 的函数
function generateUUID() {
return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),
mt_rand( 0, 0xffff ),
mt_rand( 0, 0x0fff ) | 0x4000,
mt_rand( 0, 0x3fff ) | 0x8000,
mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff )
);
}
// 生成两个随机 UUID
$uuid1 = generateUUID();
$uuid2 = generateUUID();
// 配置文件内容模板,设置不允许用户删除
$configTemplate = '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>PayloadContent</key>
<array>
<!-- Web Clip 配置 -->
<dict>
<key>URL</key>
<string>http://example.com</string> <!-- 替换为目标网址 -->
<key>Label</key>
<string>示例网站</string> <!-- 显示名称 -->
<key>PayloadType</key>
<string>com.apple.webClip.managed</string>
<key>PayloadIdentifier</key>
<string>com.example.webclip</string>
<key>PayloadUUID</key>
<string>%s</string> <!-- 使用唯一 UUID -->
<key>PayloadVersion</key>
<integer>1</integer>
<key>IconURL</key>
<string>https://example.com/icon.png</string> <!-- 确保图标 URL 是 HTTPS 并且可访问 -->
<key>IsRemovable</key>
<true/> <!-- 允许移除 Web Clip -->
<key>PrecomposedIcon</key>
<true/> <!-- 图标是否已经进行了预处理(如圆角等) -->
<key>FullScreen</key>
<true/> <!-- 全屏显示 -->
</dict>
</array>
<key>PayloadDisplayName</key>
<string>示例网站书签</string> <!-- 安装时显示的标题 -->
<key>PayloadIdentifier</key>
<string>com.example.profile</string>
<key>PayloadRemovalDisallowed</key>
<true/> <!-- 不允许用户移除配置 -->
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>%s</string> <!-- 使用另一个唯一 UUID -->
<key>PayloadVersion</key>
<integer>1</integer>
</dict>
</plist>';
// 填充 UUID 到模板
$configContent = sprintf($configTemplate, $uuid1, $uuid2);
// 计算配置文件内容的长度
$contentLength = strlen($configContent);
// 设置响应头,指定内容类型、编码、内容长度和下载文件名
header('Content-Type: application/x-apple-aspen-config; charset=UTF-8');
header('Content-Disposition: attachment; filename="webclip.mobileconfig"');
header("Content-Length: $contentLength");
// 输出配置文件内容
echo $configContent;
?>
3348

被折叠的 条评论
为什么被折叠?



