mx-jpush-expo
Version:
Expo 集成极光推送(JPush)一体化解决方案,支持 iOS/Android 厂商通道
38 lines • 1.53 kB
JavaScript
;
/**
* iOS AppDelegate Interface 配置
* 添加 JPUSHRegisterDelegate 协议
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.withIosAppDelegateInterface = void 0;
const config_plugins_1 = require("expo/config-plugins");
/**
* 配置 AppDelegate Interface
* 添加 JPUSHRegisterDelegate 协议声明
*/
const withIosAppDelegateInterface = (config) => {
return (0, config_plugins_1.withAppDelegate)(config, (config) => {
const implementationIndex = config.modResults.contents.indexOf('@implementation AppDelegate');
if (implementationIndex === -1) {
console.error('[MX_JPush_Expo] 未找到 @implementation AppDelegate');
return config;
}
// 检查是否已经添加了 JPUSHRegisterDelegate
if (config.modResults.contents.indexOf('@interface AppDelegate ()<JPUSHRegisterDelegate>') !== -1) {
return config;
}
console.log('\n[MX_JPush_Expo] 配置 AppDelegate interface ...');
const injectionCode = `
@interface AppDelegate () <JPUSHRegisterDelegate>
@end
`;
// 在 @implementation AppDelegate 前插入代码
config.modResults.contents =
config.modResults.contents.slice(0, implementationIndex) +
injectionCode +
config.modResults.contents.slice(implementationIndex);
return config;
});
};
exports.withIosAppDelegateInterface = withIosAppDelegateInterface;
//# sourceMappingURL=appDelegateInterface.js.map