借助Firebase和Parse等新服务以及Angular JS等工具,现在可以编写一个Web应用程序,它只是作为静态文件的集合提供.您可以在钱包HTML/CSS/Javascript中编写前端,后端是托管服务.
我的问题是:
欢迎任何其他建议!
我已经实现了Parse推送通知,但Android方面存在一个问题.每当我从Parse发送通知时,所有Android设备都会收到两个通知,一个包含我发送的文本,另一个包含空文本.
请在这里建议可能出现的问题
注意:我还在项目中添加了原生Android通知(GCM通知).它们是否可能导致此问题?
谢谢.
AndroidManifest的设置如下:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="com.android.vending.BILLING" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<application
android:name=".activityApplication"
android:label="@string/app_name"
android:icon="@drawable/icon">
<activity android:name=".activity"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:configChanges="orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
<!-- gcm -->
<receiver
android:name="com.company.activity.GCBroadcastReceiver"
android:exported="true"
android:process=":remote"
android:permission="com.google.android.c2dm.permission.SEND" >
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
<category android:name="com.company.activity" />
</intent-filter>
</receiver>
<service android:name=".GcmIntentService" />
<service android:name="com.parse.PushService" />
<receiver …Run Code Online (Sandbox Code Playgroud) notifications android push-notification parse-platform google-cloud-messaging
如何使用Parse.com将推送通知发送到我的Cordova 3.5.0 Android应用程序.
大多数帖子似乎涵盖了我的问题的某些方面,但不是全范围(Parse/Android或Phonegap/Parse)
我实际上已经解决了这个问题,但我在这里提出了完整的解决方案,因为我必须使用各种支离破碎的解决方案和论坛才能找到答案,而且我认为Cordova/Phonegap和Parse的组合越来越受欢迎,而且似乎成为很多有类似问题的人.
我试图保存一个PFObject具有PFFile属性的.我正在使用新的Local Datastore for iOS,所以我想PFObject用这个saveEventually()方法保存它.
我遇到的问题是该saveEventually()方法似乎不喜欢保存PFFiles.我试着saveEventually()没有PFFile附加任何物体,这很好用.一旦我PFFile重新连接,Xcode会抛出几个断点通知(错误?)但是没有终止应用程序,看起来好像一切顺利 - 但是对Parse数据浏览器的检查确认保存没有通过.
在本地数据存储功能之前,我不相信这种保存是可能的 - 它会抛出"Unable to saveEventually a PFObject with a relation to a new, unsaved PFFile."错误.似乎本地数据存储区功能已修复此问题,因为它在iOS本地数据存储区文档中声明:
"固定PFObject是递归的,就像保存一样,所以你固定的对象所指向的任何对象也都会被固定.当一个对象被固定时,每次通过获取或保存新数据来更新它时,复制到本地数据存储区将自动更新.您根本不需要担心它."
我已将SDK更新到最新版本(v1.6.2).有任何想法吗?
使用Xcode 6.3 beta时,Parse/Swift存在问题
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath , object: PFObject) -> PFTableViewCell {
var cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! secTableViewCell
if cell == nil
{
cell = secTableViewCell(style: UITableViewCellStyle.Default , reuseIdentifier: "cell")
}
// Configure the cell...
cell.title.text = (object["exams"] as! String)
cell.img.image = UIImage(named: "109.png")
return cell
}
Run Code Online (Sandbox Code Playgroud)
错误指向
if cell == nil
{
cell = secTableViewCell(style: UITableViewCellStyle.Default , reuseIdentifier: "cell")
}
Run Code Online (Sandbox Code Playgroud)
二元运算符'=='不能应用于cell类型和nil的操作数"
最后一个版本的Parse(1.7.1)和Xcode(6.3)我无法自动完成解析API的块.这真的很烦人.还有其他人有这个问题吗?
之前,像其他所有块一样,您可以选项卡突出显示它,然后按Enter键.
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error)
{
}];
Run Code Online (Sandbox Code Playgroud)
现在,当我按Enter键时,会发生这种情况:
[query findObjectsInBackgroundWithBlock:(nullable PFArrayResultBlock(nullable )block
Run Code Online (Sandbox Code Playgroud) 我试图在Android上设置Parse推送通知一段时间了.我遵循了不同的教程,我试图从他们的网络平台发送通知,但似乎没有任何工作.这是我到目前为止所尝试的.
这是我的Application类的onCreate方法
@Override
public void onCreate() {
super.onCreate();
Log.i("PushNotifications","PARSE initialize");
Parse.initialize(this, "******************************", "*****************************");
ParseInstallation.getCurrentInstallation().saveInBackground();
ParsePush.subscribeInBackground("", new SaveCallback() {
@Override
public void done(ParseException e) {
if (e == null) {
Log.i("PushNotifications","com.parse.push" + " successfully subscribed to the broadcast channel.");
} else {
Log.i("PushNotifications","com.parse.push" + " failed to subscribe for push");
}
}
});
}
Run Code Online (Sandbox Code Playgroud)
这是成功调用的,因为我得到了日志
成功订阅了广播频道.
这里还有我的清单文件的一些相关内容:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<permission android:name="com.my.app.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="com.my.app.permission.C2D_MESSAGE" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WAKE_LOCK" /> …Run Code Online (Sandbox Code Playgroud) 我对Backbone相当新,并且想知道如何从将模型注入依赖关系的视图中访问模型的数据和函数.
我的模型看起来像这样:
countries.coffee
define [
'underscore'
'backbone'
'parse'
], (_, Backbone, Parse) ->
'use strict';
class CountriesModel extends Parse.Object
countries: ['GB','US','FR','JP','WL','ZM','NG']
returnCode = (code) ->
return code
Run Code Online (Sandbox Code Playgroud)
我的观点看起来像这样:
country.coffee
define [
'jquery'
'underscore'
'backbone'
'templates'
'models/projects'
'models/countries'
], ($, _, Backbone, JST, CountriesModel, ProjectModel) ->
class CountryView extends Backbone.View
...
console.log countries
returnCode(4)
Run Code Online (Sandbox Code Playgroud)
我正在注入CountriesModel作为依赖项,但是当我调用该函数或记录时,countries我收到以下错误:
Uncaught ReferenceError: returnCode is not defined
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚我做错了什么.任何帮助表示赞赏.提前致谢!
UPDATE
我已经更新了上面的代码以提供更多的上下文.
我正在尝试创建一个可重用的模型(CountriesModel),因此我可以在我的应用程序中访问该countries数组和returnCode不同视图上的函数.但我无法弄清楚如何在我的网站上访问它们CountryView.
我CountryView已经需要一个模型了ProjectModel …
我在我的iOS应用程序中使用Parse对象存储,我为我的Parse对象创建了一个自定义子类,看起来有点像这样:
class MyThing: PFObject, PFSubclassing {
// ...PFSubclassing protocol...
@NSManaged var name: String
@NSManaged var somethingElse: String
@NSManaged var relatedThings: PFRelation
}
Run Code Online (Sandbox Code Playgroud)
该relatedThings属性有效:我可以从商店中获取相关对象.但是,我不断从Parse得到这个警告:
[Warning]: PFRelation properties are always readonly,
but MyApp.MyThing.relatedThings was declared otherwise.
Run Code Online (Sandbox Code Playgroud)
在Objective-C中,我可以轻松地将该属性标记为只读,但我不确定如何在Swift中将其作为静音警告.
使用let而不是与var不允许结合使用@NSManaged.
添加private(set)也没有影响:
@NSManaged private(set) var relatedThings: PFRelation
Run Code Online (Sandbox Code Playgroud)
那么Parse如何期望我宣布关系属性呢?
所以我想在Parse上获取大量数据,我发现一个很好的解决方案是创建一个递归函数:成功找到数据后,启动另一个请求.我这样做的方式非常简单:
var containedLimit = 1000, // Also tried with 500, 300, and 100
parseUsersWaiting = {
// A lot of Users
},
parseUsers = {}, // Recipt for Users
getPlayers = function (containedIn) {
var count = 0;
if (containedIn == undefined) {
containedIn = [];
for (var i in parseUsersWaiting) {
count++;
if (count > containedLimit) {
break;
}
containedIn.push(parseUsersWaiting[i].id);
delete parseUsersWaiting[i];
}
}
var UserObject = Parse.Object.extend('User'),
UserQuery = new Parse.Query(UserObject);
UserQuery.limit(containedLimit);
UserQuery.containedIn('objectId', containedIn);
UserQuery.find({
success: function (results) …Run Code Online (Sandbox Code Playgroud) parse-platform ×10
ios ×4
android ×3
javascript ×2
swift ×2
xcode ×2
angularjs ×1
backbone.js ×1
coffeescript ×1
cordova ×1
core-data ×1
eclipse ×1
express ×1
firebase ×1
java ×1
json ×1
model ×1
node.js ×1
pffile ×1
pfobject ×1
pfrelation ×1