我在应用程序中实现了WKWebView.在显示的网页中有一个文件输入,它应该从照片中导入图像.每当我按下该输入并选择"拍照"或"照片库"时,该应用程序突然崩溃,我认为这是因为该应用程序缺少拍照或从库导入的权限.
当用户选择上述方法之一(拍照或照片库)时,如何推送权限请求?
我使用Swift 3.0和WKWebView.
我使用的是本机最新版本的0.54.0和每当在iOS上运行应用程序时,发现有关弃用生命周期方法的警告.还请更新组件.
警告 :
不推荐使用componentWillMount,将在下一个主要版本中删除它.请改用componentDidMount.作为临时解决方法,您可以重命名为UNSAFE_componentWillMount.请更新以下组件:容器,文本,TouchableOpacity,Transitioner,View
我也根据waring添加前缀UNSAFE_的每个方法进行更改.
UNSAFE_componentDidMount() {
}
UNSAFE_componentWillMount() {
}
UNSAFE_componentWillUpdate(nextProps, nextState) {
}
UNSAFE_componentWillReceiveProps(nextProps) {
}
Run Code Online (Sandbox Code Playgroud)
虽然警告仍在继续.请帮我.
目前我在我的应用程序中隐藏了YellowBox waring.
import { YellowBox } from 'react-native';
render() {
YellowBox.ignoreWarnings([
'Warning: componentWillMount is deprecated',
'Warning: componentWillReceiveProps is deprecated',
]);
}
Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中集成了应用程序内购买,它适用于购买和恢复项目.但是有一个问题,
当我使用test1@gmail.com购买该项目时,其成功购买该项目也恢复正常工作.
现在,我从我的设备上卸载了应用程序,还清除了iTunes和App Store中的凭据.并再次安装.
当我点击恢复按钮时,会显示两个Popup:一个是test1@gmail.com,另一个是退出或创建用户.
每当我从后台到前台时,每次都会显示登录弹出窗口.
注意:我还调用了finishTransaction方法.但它不适合我.
登录PopUp显示时,无法调用一种方法.
我怎么能解决这个问题?
朋友我想在我的应用程序中集成Facebook,以便我下载新的Facebook SDK v.4.1.0,对于Facebook登录按钮使用FBSDKLoginButtonSwift中的以下代码类.
if (FBSDKAccessToken.currentAccessToken() != nil)
{
// User is already logged in, do work such as go to next view controller.
// Or Show Logout Button
let loginView : FBSDKLoginButton = FBSDKLoginButton()
self.view.addSubview(loginView)
loginView.center = self.view.center
loginView.readPermissions = ["public_profile", "email", "user_friends"]
loginView.delegate = self
self.returnUserData()
}
else
{
let loginView : FBSDKLoginButton = FBSDKLoginButton()
self.loginButtonDidLogOut(loginView)
self.view.addSubview(loginView)
loginView.center = self.view.center
loginView.readPermissions = ["public_profile", "email", "user_friends"]
loginView.delegate = self
}
}
Run Code Online (Sandbox Code Playgroud)
如上面的代码,显示"使用Facebook登录"按钮.

成功登录后,显示注销按钮.当我点击注销按钮然后调用它的委托 - 委托类FBSDKLoginButtonDelegate
委派注销方法:
func …Run Code Online (Sandbox Code Playgroud) 我正在开发一个社交网络应用程序.我在我的iOS应用程序中集成了Facebook SDK 3.14.现在,我想获取所有Facebook好友的列表,这样我就可以邀请那些没有使用该应用程序的朋友,并向已安装该应用程序的朋友发送好友请求.
我可以获得已经使用我的应用程序的朋友列表"/me/friends".
[FBRequestConnection startWithGraphPath:@"/me/friends"
parameters:nil
HTTPMethod:@"GET"
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
NSLog(@"All == %@", result);
}];
Run Code Online (Sandbox Code Playgroud)
它给朋友的Facebook ID(例如id = 654330727444458)作为回应,以便我可以向他们发送朋友请求.
要获得所有未下载应用程序的Facebook好友的列表,如果我想邀请那些,我需要让所有朋友使用"me/taggable_friends"(如果我错了请纠正我).
[FBRequestConnection startWithGraphPath:@"/me/taggable_friends"
parameters:nil
HTTPMethod:@"GET"
completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
NSlog("%@", result);
}];
Run Code Online (Sandbox Code Playgroud)
在taggable_friends回复中,我得到朋友的身份为id = "AaLYBzZzHdzCmlytqyMAjO0OLDZIOs74Urn93ikeRmmTB3vX_Xl81OYUt4XnoWG0BDLuX67umVkheVdDjzyvm0fcqMqu84GgM9JnNHc-1B63eg"这是朋友的令牌ID并且它不是唯一的.我不能使用它,必须使用朋友的Facebook ID邀请他们.不幸的是,我无法在可标记的朋友回复.
我有一个用swift编写的应用程序,它使用AFNetwork和其他一些用Obj编写的帮助程序.在我的客户端设备(iPhone 6+)上他收到了一个SIGTRAP错误,我试图在我们拥有的测试设备和所有模拟器上重新创建问题,但无法重新创建它.
下面是堆栈跟踪,它崩溃了两次:http: //paste.ubuntu.com/12077304/ 当我象征崩溃报告时,它指向:
-[Instagram getOwnBaseUrl] (in DiaryApp) (Instagram.m:118)
Run Code Online (Sandbox Code Playgroud)
在第二个实例中,它指向:
[UIAlertView(AFNetworking) showAlertViewForTaskWithErrorOnCompletion:delegate:cancelButtonTitle:otherButtonTitles:]_block_invoke (in DiaryApp) (UIAlertView+AFNetworking.m:72)
Run Code Online (Sandbox Code Playgroud)
崩溃日志:http://paste.ubuntu.com/12077328/
我无法确定崩溃的确切原因.在这方面的任何帮助将受到高度赞赏.
谢谢.
似乎有不同的实例化NSArrays的方法(NSDictionary和其他一些方法相同).
我知道:
[NSArray array][NSArray new]@[] [[NSArray alloc] init]出于可读性的原因,我经常坚持[NSArray array],但所有这些之间有什么区别,他们都真的这样做吗?
我想在用户每次更改选项卡时重新加载 tabNavigator。当用户更改选项卡时,不会调用 React Native 的生命周期方法。那么如何在 TabNavigator 中重新加载选项卡:
下面的示例有两个选项卡:1) 主页 2) 事件。现在我想在用户从主页选项卡返回时刷新事件选项卡。
EXPO LINK: 世博标签导航器
代码 :
import React, {Component} from 'react';
import {View, StyleSheet, Image, FlatList, ScrollView, Dimensions } from 'react-native';
import { Button, List, ListItem, Card } from 'react-native-elements' // 0.15.0
//import { Constants } from 'expo';
import { TabNavigator, StackNavigator } from 'react-navigation'; // 1.0.0-beta.11
//image screen width and height defs
const windowWidth = Dimensions.get('window').width;
const windowHeight = Dimensions.get('window').height;
export default class App extends Component {
render() { …Run Code Online (Sandbox Code Playgroud) 我在UIScrollView中有UILabel.我的标签可以扩展到多行.我已经设置,因为它可以扩展到2或3行.它在UIScrollView中未显示时工作正常.但当我把它放在UIScrollView中时,这个标签显示为一个冗长的标签,而不是分成多行.而是显示水平滚动.我不想显示横向滚动,而是希望我的标签扩展到两行以上并且只覆盖可用的宽度.myLabel.numberOfLines = 0
我想从视频中获取每帧的缩略图,然后将这些图像保存在可变图像阵列中.
我想用这些图像作为动画播放.
NSURL* assetURL = [self.asset valueForProperty:ALAssetPropertyAssetURL];
NSDictionary* assetOptions = nil;
AVAsset* myAsset = [[AVURLAsset alloc] initWithURL:assetURL options:assetOptions];
self.imageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:myAsset];
int duration = CMTimeGetSeconds([myAsset duration]);
for(int i = 0; i<duration; i++)
{
CGImageRef imgRef = [self.imageGenerator copyCGImageAtTime:CMTimeMake(i, duration) actualTime:NULL error:nil];
UIImage* thumbnail = [[UIImage alloc] initWithCGImage:imgRef scale:UIViewContentModeScaleAspectFit orientation:UIImageOrientationUp];
[thumbnailImages addObject:thumbnail];
}
Run Code Online (Sandbox Code Playgroud)
我使用上面的代码来获取缩略图,但问题是如果有2秒的视频,我只得到2个缩略图,但我想要20个缩略图(每秒10个缩略图).
那么,如何使用CMTimeMake每0.1秒获取缩略图
ios ×8
swift ×4
objective-c ×3
facebook ×2
iphone ×2
react-native ×2
avplayer ×1
cmtime ×1
in-app ×1
multiline ×1
nsarray ×1
tabnavigator ×1
uilabel ×1
uiscrollview ×1
wkwebview ×1