我在Ionic 2 App中使用SMS消息。我拥有最新版本的Cordova CLI和最新版本的Ionic 2。
当我使用
<a href="sms:14038000000"><button outline><ion-icon name="ios-chatbubbles"></ion-icon></button></a>
Run Code Online (Sandbox Code Playgroud)
它可以像短信一样正常工作:14038000000,
当我使用
<ion-card *ngFor="let item of corp">
<div class="contact-name">
{{ item.name}}
</div>
<div class="contact-content">
<a href="sms:{{item.sms}}"><button outline><ion-icon name="ios-chatbubbles"></ion-icon></button></a>
</div>
</ion-card>
Run Code Online (Sandbox Code Playgroud)
短信显示为不安全:sms:14038000000
在ionic 1 app.js中,我使用了
.config(function($compileProvider){
$compileProvider.aHrefSanitizationWhitelist(/^\s*(https?|http?|ftp|mailto|file|sms|tel):/);
})
Run Code Online (Sandbox Code Playgroud)
解决这个问题。
Ionic 2 app.ts是否有类似的解决方案
我所有的搜索发现对下面的代码离子1.帖子我能够使用this.corpguys的ng*For,并保存到本地存储.我想进一步获取我的应用程序并将其保存到sqlite表中corpguys.我不确定是否必须JSON.stringify(data)然后循环以将此数据插入到db中.我只是想知道是否有人见过离子2的例子
import {Page, Storage, SqlStorage} from 'ionic/ionic';
import {Http} from 'angular2/http';
import 'rxjs/add/operator/map';
@Page ({
templateUrl: 'build/pages/remote/remote.html',
})
export class Remote {
constructor(http: Http) {
this.http = http;
//this.corpguys = null;
this.http.get('http://test.json')
.map(res => res.json())
.subscribe
(data => {
this.corpguys = data;
//Loop through corpguys and asign varible names
this.DataStorage = new Storage(SqlStorage);
this.DataStorage.query("INSERT into corpguys (name, position, phone, cell, sms, email, other) VALUES ('namevalue', 'positionvalue', 'phonevalue', 'cellvalue', 'smsvalue', 'emailvalue', 'othervalue')");
}, …Run Code Online (Sandbox Code Playgroud) 我已经构建了一个使用搜索栏过滤 *ngFor 数组的页面。当我在搜索栏中键入时,它的行为正常,但是当我删除或退格文本时,它不会更新。如果我从数据服务的静态列表中提取一个数组,而不是我从 ApolloQueryResult 中提取的数据,它会正常工作。任何帮助将不胜感激。
html
<ion-content padding>
<div *ngIf="loading">Loading...</div>
<div *ngIf="error">Error loading data</div>
<ion-toolbar>
<ion-searchbar [(ngModel)]="searchTerm" (ionChange)="setFilteredItems()" showCancelButton="focus"></ion-searchbar>
</ion-toolbar>
<ion-card *ngFor="let data of info">
<ion-card-content>
{{data.TypeOfNotification}}
</ion-card-content>
</ion-card>
</ion-content>
Run Code Online (Sandbox Code Playgroud)
ts
import { Component, OnInit } from '@angular/core';
import { Apollo } from 'apollo-angular';
import { ApolloQueryResult } from 'apollo-client';
import { QueryTodoService } from '../../services/query-todo.service';
import { Storage } from '@ionic/storage';
@Component({
selector: 'app-tab-to-do',
templateUrl: './tab-to-do.page.html',
styleUrls: ['./tab-to-do.page.scss'],
})
export class TabToDoPage implements OnInit {
info: any;
error: any; …Run Code Online (Sandbox Code Playgroud) 违反请求安装包权限:权限使用与应用程序的核心用途没有直接关系。
我们发现您的应用不符合REQUEST_INSTALL_PACKAGES允许使用权限的方式。具体来说,权限的使用与应用程序的核心用途没有直接关系。
之前推荐的答案
离子电容器删除 Android 构建的 REQUEST_INSTALL_PACKAGES 权限
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" tools:node="remove"/>
Run Code Online (Sandbox Code Playgroud)
在AndroidManifest.xml中
或者从 Android Manifest.xml Merged Manifest Tab 中删除,该选项卡没有引用
android.permission.REQUEST_INSTALL_PACKAGES。
我使用的唯一 Cordova 插件是 localforage-cordovasqlitedriver
电容器插件列表,
如何有效地搜索插件和项目以查找正在添加的插件和项目android.permission.REQUEST_INSTALL_PACKAGES。
我还发现
公共静态最终字符串REQUEST_INSTALL_PACKAGES =“android.permission.REQUEST_INSTALL_PACKAGES”;
在~/Library/Android/sdk/platforms/android-32/android.jar!/android/Manifest.class
android cordova android-permissions ionic-framework capacitor