使用加密素材
PAGViewer 4.2版本后,支持用户通过密码和证书加密素材。其中通过密码加密的素材只能在 PAGViewer 上使用,无法在客户端使用;通过证书加密的素材需要在客户端导入解密证书后才能正常使用。
PAGLicenseManager 只允许通过路径或者文件数据添加证书,但加密证书的管理建议通过后台进行下发,防止由于本地证书过期导致素材加载失败。
每次 APP 启动后只需要添加一次相同证书,加载加密文件时无需再次添加。
Android
/**
* 使用加密素材时需要添加素材证书,否则文件会加载失败,返回 nil,建议在 APP 启动后直接添加,防止加密素材无法使用
*/
private void initFileLicense() {
int result = PAGLicenseManager.AddFileLicense(applicationContext, SDK_LICENSE_FILE_PATH);
if (result == PAGLicenseManager.LicenseResultSuccess) {
Log.i(TAG, "PAGLicenseManager.AddFileLicense success");
} else {
Log.i(TAG, "PAGLicenseManager.AddFileLicense failed");
}
}
/**
* 加密文件与普通文件加载一样,不需要使用其他接口。如果文件加载失败,可能是素材的解密证书不存在,或者文件结构出错,可以通过桌面端 PAGViewer 查看文件状态。
*/
private void loadEncryptedFile() {
PAGFile pagFile = PAGFile.Load(PAG_FILE_PATH);
if (pagFile == null) {
Log.i(TAG, "PAGFile.Load failed");
} else {
Log.i(TAG, "PAGFile.Load success");
}
}
iOS
/**
* 使用加密素材时需要添加素材证书,否则文件会加载失败,返回 nil,建议在 APP 启动后直接添加,防止加密素材无法使用
*/
- (void)initFileLicense {
NSString *path = [[NSBundle mainBundle] pathForResource:@"demo" ofType:@"license"];
PAGLicenseResult result = [PAGLicenseManager AddFileLicense:path];
if (result == PAGLicenseResultSuccess) {
NSLog(@"Successfully added license.");
} else {
NSLog(@"Failed to add certificate. Path:%@", path);
}
}
- (void)loadEncryptedFile {
// 加密文件与普通文件加载一样,不需要使用其他接口。如果文件加载失败,可能是素材的解密证书不存在,或者文件结构出错,可以通过桌面端 PAGViewer 查看文件状态。
NSString *path = [[NSBundle mainBundle] pathForResource:@"encryptedFile" ofType:@"pag"];
PAGFile *file = [PAGFile Load:path];
}