在新版本中,whatsapp 实现了 url 方案,例如
NSURL *whatsAppURL = [NSURL URLWithString:@"Whatsapp://"];
if ([[UIApplication sharedApplication] canOpenURL:whatsAppURL]) {
[[UIApplication sharedApplication] openURL:whatsAppURL];
}
Run Code Online (Sandbox Code Playgroud)
有人知道是否有任何与此相关的行动吗?喜欢创建一条新消息吗?
我不确定这是否可行,并且我已经阅读了许多关于 SO 上的深度链接问题的答案,所以我想我会问。
我知道作为开发人员,我们可以向我们的应用程序添加自定义 URL 方案,这样如果我向朋友发送自定义链接,它应该会在我的应用程序中打开特定页面。但是,我想知道如果我朋友的手机上没有安装该应用程序,是否有任何方法可以处理这样的事情。理想情况下,我想将我的朋友重定向到我的应用程序的 App Store 页面,但我想不出任何可以完成的方法。在此先感谢您的任何建议!
我想从我的 iOS 应用程序中链接 Facebook 页面。如果 Facebook 应用程序安装在同一设备上,则该页面应显示在那里,否则在 Safari 中显示:
NSURL* facebookURL = [NSURL URLWithString:@"https://www.facebook.com/SomePage/"];
NSURL* facebookAppURL = [NSURL URLWithString:@"fb://profile/247377102029332"];
UIApplication* app = [UIApplication sharedApplication];
if ([app canOpenURL: facebookAppURL])
[app openURL:facebookAppURL];
else
[app openURL:facebookURL];
Run Code Online (Sandbox Code Playgroud)
理论上这应该有效:如果我直接在 Safari 中输入 facebookAppURL,或跳过检查canOpenURL,系统会询问我是否应在 Facebook 中打开该链接。单击“确定”后,Facebook 应用程序出现并显示该页面。
然而调用[app canOpenURL: facebookAppURL]会带来回报false。
同样的方法适用于 Twitter URL,例如:如果 Twitter 应用程序已安装并且可以处理 URL,则twitter://user?screen_name=...检查仅返回。true为什么 Facebook 链接失败?
有没有办法将视频或照片直接发布到用户 Instagram 帐户的 Instagram 故事中?对于 Instagram 上的普通照片共享,您可以使用 URL Scheme 并直接打开编辑器。故事也有办法吗?
谢谢!
我有两个iPhone应用程序,并希望他们能够通过一个按钮切换,无论如何要做到这一点?
我在我的iPhone应用程序中使用URL方案,从我切换用户到safari的页面,以及从网页点击按钮,我恢复到应用程序那时,一些参数通过网页传递,如
myapp://parameter=1
Run Code Online (Sandbox Code Playgroud)
如何从我的应用程序中找到此参数?我已经设置了一个断点
-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)ur
Run Code Online (Sandbox Code Playgroud)
但是在回复时,它不会被调用.
我有一个带有以下intent过滤器的Activity A.
<activity
android:name="com.comp.pac.ActivityA">
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data android:scheme="customapp"
android:host="show"
android:path="/"/>
</intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)
我基本上是试图自定义数据方案的意图过滤器作为解释这里
要测试IntentUri是否启动活动,我试图通过终端使用以下命令触发意图:
adb shell am start intent://show/#Intent;scheme=customapp;package=com.comp.pac;end
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
Activity not started, unable to resolve Intent { act=android.intent.action.VIEW dat=intent://show/ flg=0x10000000 }
问题:命令有什么问题吗?如果没有,测试意图uri是否开始活动的最简单方法是什么?
有关使用adb命令以使用intent uri启动活动的说明,请参见此处.
NSString *customURL = @"mycustomurl://";
if ([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:customURL]]) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];
} else {
...
}
Run Code Online (Sandbox Code Playgroud)
即使未安装公开自定义URL的目标应用程序,该应用程序也会对“ canOpenURL”返回true。在电话和模拟器上都会发生此行为。然后,openURL静默失败。任何想法为什么会发生这种情况/如何抓住这种情况?
我在中创建了一个URL方案Info.plist来调用我的应用程序,但是URL还会解析我需要读取的数据字符串。
环顾了一会后,我发现-http: //www.informit.com/articles/article.aspx?p= 2301787&seqNum =2
用下面的代码
var scheme: String!
var path: String!
var query: String!
func application(app: UIApplication, openURL url: NSURL, options: [String: AnyObject]) -> Bool {
scheme = url.scheme
path = url.path
query = url.query
return true
}
Run Code Online (Sandbox Code Playgroud)
据称,每当我通过URL调用应用程序时都会调用该函数,但是却从未调用过该函数,而且我无法想象我必须将该函数放入中viewDidLoad,如果我确实将其放入中,viewDidLoad那么它将每次都被调用该应用程序已启动。
我是在错误的假设吗-不需要在中调用该函数,viewDidLoad或者是否有更好的方法使用Info.plist创建方案从URL方案获取数据
我正在使用以下SDK's通过CocoaPod:
pod 'FBSDKCoreKit'
pod 'FBSDKLoginKit'
pod 'FBSDKShareKit'
pod 'Google/SignIn'
pod 'CleverTap-iOS-SDK'
Run Code Online (Sandbox Code Playgroud)
每件事都works fine在iOS9.
但是当我将部署目标更改为定义iOS8的delegate方法时,AppDelegate -openUrl不再被调用.
它不是被称为两个Facebook和Google Sign In.
当我OK在Facebook的授权页面点击时,我的应用程序再次重新启动,没有调用任何委托给我这个日志:
<FIRAnalytics/WARNING> Implementation of application:openURL:sourceApplication:annotation:
not found. Please add the handler into your App Delegate. Class: CleverTapAppDelegateSurrogate.
Run Code Online (Sandbox Code Playgroud)
注意当我评论此行时,我的代码在两个iOS版本中都运行良好.但我需要使用聪明的点击.
//Clever Tap
[CleverTap autoIntegrate]; //Cause Issue in FB/G logins
Run Code Online (Sandbox Code Playgroud)
它背后的主要原因是什么,我无法弄明白.
url-scheme ×10
ios ×9
objective-c ×5
facebook ×2
adb ×1
android ×1
appdelegate ×1
deep-linking ×1
info.plist ×1
instagram ×1
intentfilter ×1
iphone ×1
nsurl ×1
swift ×1
url ×1
viewdidload ×1
whatsapp ×1