import { Injectable } from '@angular/core'; import { Platform, Config } from 'ionic-angular'; import { OpenNativeSettings } from '@ionic-native/open-native-settings'; import { Log } from '../utils/log' const log = new Log('Settings'); // ios const iosNames = [ "about", // ios "autolock", // ios "castle", // ios "cellular_usage", // ios "configuration_list", // ios "facetime", // ios "locations", // ios "music", // ios "music_equalizer", // ios "music_volume", // ios "nike_ipod", // ios "notes", // ios "notification_id", // ios 设置通知 "passbook", // ios "phone", // ios "photos", // ios "reset", // ios "ringtone", // ios "browser", // ios "tethering", // ios "twitter", // ios "touch", // ios "video", // ios "vpn", // ios "wallpaper", // ios "software_update", // ios ]; const androidNames = [ "apn", // android "application", // android "battery_optimization", // android "captioning", // android "cast", // android "data_roaming", // android "dream", // android "home", // android "manage_all_applications", // android "manage_applications", // android "memory_card", // android "nfcsharing", // android "nfc_payment", // android "nfc_settings", // android "print", // android "privacy", // android "quick_launch", // android "security", // android "sync", // android "user_dictionary", // android "voice_input", // android "wifi_ip", // android "wireless", // android ]; // 设置跳转名称 const commonNames = [ "accessibility", // ios, android "account", // ios, android "airplane_mode", // ios, android "application_details", // ios, android "application_development", // android "bluetooth", // ios, android "date", // ios, android "display", // ios, android "keyboard", // ios, android "keyboard_subtype", // android "locale", // ios, android "location", // ios, android "network", // ios, android "search", // ios, android "settings", // ios, android "show_regulatory_info", "sound", // ios, android "storage", // ios, android "store", // ios, android "usage", // ios, android "wifi" // ios, android ] // == 原生系统设置跳转服务 @Injectable() export class Settings { constructor(public platform:Platform, public openNativeSettings:OpenNativeSettings){ } // 打开系统设置指定页面 open = (name) => { if(this.platform.is('cordova')){ const names = this.getNames() || []; if(names.indexOf(name) > -1){ //if(path) name = name + '&path=' + path; return this.openNativeSettings.open(name); }else{ log.info(`名为${name}的系统设置不存在!`,null,true); return new Promise((resolve, reject)=>{ reject(); }) } } } getNames = () => { if(this.platform.is('ios')){ return commonNames.concat(iosNames); }else if(this.platform.is('android')){ return commonNames.concat(androidNames); }else{ return commonNames || []; } } }