Cordova   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了cordova – 如何在PhoneGap中处理自定义URL方案以进行冷启动?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在使用handLeopenURL()进行自定义URL方案,以便从电子邮件中的链接启动我的应用程序.完美的工作,我可以根据链接中的URL参数在我的应用程序中执行操作. 问题是当我的应用程序冷启动(不在后台运行)时,handLeopenURL()似乎没有调用.是否有另一个处理程序可用于冷启动与已运行的实例? 要么 是否有一个我可以阅读的全局变量,它会告诉我调用URL是什么?我读了一下invokeS
我正在使用handLeopenURL()进行自定义URL方案,以便从电子邮件中的链接启动我的应用程序.完美的工作,我可以根据链接中的URL参数在我的应用程序中执行操作.

问题是当我的应用程序冷启动(不在后台运行)时,handLeopenURL()似乎没有调用.是否有另一个处理程序可用于冷启动与已运行的实例?

要么

是否有一个我可以阅读的全局变量,它会告诉我调用URL是什么?我读了一下invokeString,但似乎从来没有设置过?

我正在使用PhoneGap 2.0

解决方法

如果你仔细阅读应用程序上面的注释:handLeopenURL方法,你可能会理解:

// this happens while we are running ( in the BACkground,or from within our own app )
// only valid if Calinda-Info.plist specifies a protocol to handle
- (BOOL) application:(UIApplication*)application handLeopenURL:(NSURL*)url

如果应用程序未运行,则不会调用方法.我的解决方案是通过以下更改来调整项目:

@H_470_19@mainViewController.h

@interface MainViewController : CDVViewController
@property (nonatomic,retain) NSString *URLToHandle;
@end
@H_470_19@mainViewController.m

- (void) webViewDidFinishLoad:(UIWebView*) theWebView 
{
     if (self.URLToHandlE)
     {         
         NSString* jsString = [NSString StringWithFormat:@"window.setTimeout(function() {handLeopenURL(\"%@\"); },1);",self.URLToHandle];
         [theWebView StringByEvaluaTingJavaScriptFromString:jsString];
     }
     [...]
}

- (void)dealloc
{
    self.URLToHandle = nil;
    [super dealloc];
}

@synthesize URLToHandle;

AppDelegate.m

- (BOOL) application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions
{   
    [...]
    self.viewController = [[[MainViewController alloc] init] autorelease];
    self.viewController.useSplashScreen = YES;
    self.viewController.wwwFolderName = @"www";
    self.viewController.startPage = @"index.html";
    self.viewController.view.frame = viewBounds;

    // Patch for handLeopenURL
    ((MainViewController *)self.viewController).URLToHandle = URLToHandle;

    [...]
}

希望有所帮助.

西里尔

附加说明:测试时确保停止xcode.当xcode运行时,应用程序会抛出异常.如果我停止xcode这个解决方案工作正常.

大佬总结

以上是大佬教程为你收集整理的cordova – 如何在PhoneGap中处理自定义URL方案以进行冷启动?全部内容,希望文章能够帮你解决cordova – 如何在PhoneGap中处理自定义URL方案以进行冷启动?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。