小さなアイコンを変更するのに問題がありますプッシュ通知Onesignalでionic 3、私はこのチュートリアルを試しました https://documentation.onesignal.com/docs/customize-notification-icons 、 https://ionicframework.com/docs/native/onesignal/ および https://github.com/OneSignal/OneSignal-Cordova-SDK/issues/341# issuecomment-382648188 ですが、すべて失敗します。私のプッシュ通知の小さなアイコンは、デフォルトでonesignalのままです。
これは私のフォルダ構造と私のスクリプトです:
私のフォルダ構造:
copy_Android_notification_icons.js:
#!/usr/bin/env node
var fs = require('fs');
var path = require('path');
var rootDest = 'platforms/Android/app/src/main/res';
var files = [{
'icon_onesignal/res/drawable-hdpi/ic_stat_onesignal_default.png':
path.join(rootDest, 'drawable-hdpi/ic_stat_onesignal_default.png')
}, {
'icon_onesignal/res/drawable-mdpi/ic_stat_onesignal_default.png':
path.join(rootDest, 'drawable-mdpi/ic_stat_onesignal_default.png')
}, {
'icon_onesignal/res/drawable-xhdpi/ic_stat_onesignal_default.png':
path.join(rootDest, 'drawable-xhdpi/ic_stat_onesignal_default.png')
}, {
'icon_onesignal/res/drawable-xxhdpi/ic_stat_onesignal_default.png':
path.join(rootDest, 'drawable-xxhdpi/ic_stat_onesignal_default.png')
}, {
'icon_onesignal/res/drawable-xxxhdpi/ic_stat_onesignal_default.png':
path.join(rootDest, 'drawable-xxxhdpi/ic_stat_onesignal_default.png')
}];
function createFolder(pathAbsolute) {
if (!fs.existsSync(pathAbsolute)) {
fs.mkdirSync(pathAbsolute);
}
console.log('Folder ready ', pathAbsolute);
}
module.exports = function(context) {
var root = context.opts.projectRoot;
createFolder(path.join(root, rootDest, 'drawable-hdpi'));
createFolder(path.join(root, rootDest, 'drawable-mdpi'));
createFolder(path.join(root, rootDest, 'drawable-xhdpi'));
createFolder(path.join(root, rootDest, 'drawable-xxhdpi'));
createFolder(path.join(root, rootDest, 'drawable-xxxhdpi'));
files.forEach(function(obj) {
Object.keys(obj).forEach(function(key) {
var src = path.join(root, key);
var dest = path.join(root, obj[key]);
if (fs.existsSync(src) && fs.existsSync(path.dirname(dest))) {
fs.createReadStream(src).pipe(fs.createWriteStream(dest));
console.log('Copied ' + src + ' to ' + dest);
}
});
});
};
app.components.ts
import { Component } from '@angular/core';
import { Platform } from 'ionic-angular';
import { StatusBar } from '@ionic-native/status-bar';
import { SplashScreen } from '@ionic-native/splash-screen';
import { HomePage } from '../pages/home/home';
@Component({
templateUrl: 'app.html'
})
export class MyApp {
rootPage:any = HomePage;
constructor(platform: Platform, statusBar: StatusBar, splashScreen: SplashScreen) {
platform.ready().then(() => {
// Okay, so the platform is ready and our plugins are available.
// Here you can do any higher level native things you might need.
statusBar.styleDefault();
splashScreen.hide();
var notificationOpenedCallback = function(jsonData) {
console.log('notificationOpenedCallback: ' + JSON.stringify(jsonData));
};
window["plugins"].OneSignal
.startInit("xxxx-yyyy-zzzz-123, "1234567")
.handleNotificationOpened(notificationOpenedCallback)
.endInit();
});
}
}
config.xml
<platform name="Android">
<allow-intent href="market:*" />
<hook src="hooks/copy_Android_notification_icons.js" type="after_prepare" />
</platform>
フォルダーまたはスクリプトを修正してください。間違いを見つけて、この問題の解決にご協力ください。
ありがとう。
以下の手順に従ってください。次に、プラットフォームフォルダーをタッチして、手動でプッシュ通知アイコンを追加する必要はありません。
ic_stat_onesignal_default
config.xml
ファイルはコードの下に追加します。<!-- Add to your existing Android platform sction -->
<platform name="Android">
<resource-file src="resources/Android/notification/drawable-mdpi/ic_stat_onesignal_default.png" target="app/src/main/res/drawable-mdpi/ic_stat_onesignal_default.png" />
<resource-file src="resources/Android/notification/drawable-hdpi/ic_stat_onesignal_default.png" target="app/src/main/res/drawable-hdpi/ic_stat_onesignal_default.png" />
<resource-file src="resources/Android/notification/drawable-xhdpi/ic_stat_onesignal_default.png" target="app/src/main/res/drawable-xhdpi/ic_stat_onesignal_default.png" />
<resource-file src="resources/Android/notification/drawable-xxhdpi/ic_stat_onesignal_default.png" target="app/src/main/res/drawable-xxhdpi/ic_stat_onesignal_default.png" />
<resource-file src="resources/Android/notification/drawable-xxxhdpi/ic_stat_onesignal_default.png" target="app/src/main/res/drawable-xxxhdpi/ic_stat_onesignal_default.png" />
</platform>
デフォルトのプッシュ通知アイコンが新しいものに置き換わります。
OneSignal DOC から詳細を検索します
私は先週OneSignalで働いていて、あなたと同じことをしました。 Notificationには特定のサイズがあります。
生成元Androidアセットまたはオンライン こちら 。
サイズを設定する必要があります:
Small Notification Icon (mdpi)- 24x24
Small Notification Icon (hdpi)- 36x36
Small Notification Icon (xhdpi)- 48x48
Small Notification Icon (xxhdpi) - 72x72
Small Notification Icon (xxxhdpi)-96x96
また、、すべてのアイコンをプラットフォームフォルダに配置する必要があることに注意してください。このために行く-platform/Android/app/src/main/res/
。
そこに存在しない場合は、ドローアブルフォルダーを作成します。名前は次のようにする必要があります-drawable-mdpi, drawable-hdpi
等々。
注アイコンに使用している名前。
Now、onesignalパネルから、小さいアイコンオプションで名前を使用します。例
これで問題が解決することを願っています。