IOS Launch Application to chromecast not working - ios

I created my IOS application based on CastHelloText example, I can connect perfectly to chromecast but when launching the app, nothing happens
Sometimes I see a message on my TV saying "brain freeze"
in the app, the delegate method:
- (void)deviceManager:(GCKDeviceManager *)deviceManager
didConnectToCastApplication:(GCKApplicationMetadata *)applicationMetadata
sessionID:(NSString *)sessionID
launchedApplication:(BOOL)launchedApplication
is never called!
I think I can be setting something wrong in the developer console, When I check the option IOS, there is a field that says App URL and not sure I should enter there!
Is there any option to call directly to a URL without using an app id?

I use the default Media Player AppID for my test kGCKMediaDefaultReceiverApplicationID until I figured out how to make my application work.
Maybe this would help.

Related

Get arguments passed by Smart Banner iOS from flutter web safari

I have implement a simple code to my flutter web app:
https://developer.apple.com/documentation/webkit/promoting_apps_with_smart_app_banners
Now it shows a banner on top if app is installed or not.
If app is install it shows "Open" otherwise it shows "View" which takes to download.
Now the issue is as per the documents it says you can pass specific arguments if needed like this:
I want to know how do i check in flutter app if the app is opened from smart banner from safari and which app-argument was passed down on opening the app.
I am stuck on this issue for 3 days now.
Use native application(_:open:options:) method to get access to app-argument and Write custom platform-specific code to access it from Flutter or maybe use app_links plugin.

iOS Broadcast Extension(Screen Broadcasting) is not Working

I'm new to Programming Business and making Broadcasting App Which is supposed to Handle Screen Broadcast Function(iPhone Control Center --> Broadcast. Like a Mobcrush).
So I try to implement Broadcast App Extension that was introduced at WWDC, but my Demo App Doesn't work well. My Demo App Just Doesn't Broadcast And Just Show Me an Error Alert Which Says "Live Broadcast to MYDemoApp has stopped due to: (null)"
Here Are The Things What I Did On Demo App
Implementing App Extension(BroadCast Extension. Which Makes SampleHandler, BroadcastSetupViewController)
Implementing App Group(Setting Capability, BundleIdentifier,
Setting App Groups And Provisioning Profile in Developer.Apple.com)
Pod Install And Copied The Codes That I Didn't Write From Other Developer's Demo App (HaishinKit)
(https://github.com/shogo4405/HaishinKit.swift)
Put RTMP URL String in userDidFinishSetup() in BroadcastSetupViewController
(This App is Demo, So i Just Put My Own RTMP Address And Stream Key. Like This : rtmp://bc.CompanyName.tv/app/VeryLongStreamKey)
Plus, I Think this is Not an RTMP URL Issue. because I already did Camera(Front, Rear) Broadcast Test With That URL(Not an App Extension. Just in the Simple ViewController).
Could you Tell Me A Hint? Any Feedback Would Be Appreciated!
Thank For You Reading My First Question About Coding.
This is an Alert That I Saw
I found there is many limitations on iOS broadcast extension.
- If extension started by container app via API, Network become off when app goes background.
- File access is not possible.
- Asset access is not possible.
- Swift print() do nothing. Use NSLog() and idevicesyslog.
- Xcode "Attach to process by PID or Name..." works.
If you get "due to (null)" error, debug on Xcode by attaching process.
Or put NSLog() and see by idevicesyslog.

Universal link with branch.io doesnt work with iPhone when it works with iPad

My App is in production now, and within my app I create a Universal link using branch.io and share it to other users using for example iMessage. Example link below I got from my friend is below:
I have the app from App Store installed on both devices: iPad and iPhone. Now the above link I tap on iPad and everything is fine. My App is opened I can catch the link:)
But when I tap it on iPhone the result is following:
Why? Shouldnt it works the same way on both: iPad and iPhone? I do not know what is wrong here... Any questions? I can change and add additional info here to help the solve the problem.
This is how I defined it in dashboard of branch.io:
You are encountering a new behavior introduced with iOS 10.3. The pop-up you are seeing will open the app now only if the user responds to the pop-up alert affirmatively. You must have not yet updated your iPad.
There is an unexpected issue with this new behavior beyond the obvious:
if the user taps "Cancel" on the pop-up alert, he or she will be stuck on a blank page in Safari. To improve this experience I recommend setting the $ios_passive_deepview parameter to the key of a Deepview of your choice (branch_default is the default, I believe).

What is this error 7 with google-cast sample ios/application?

I downloaded the chromecast ios sample and when I connect the sample application to chromecast, it give the following error:
error domain=com.google.GCKError code=7 "The operation couldn't be completed. (com.google.GCKError error 7.)"
Do you know why?
I got the same error message while testing the "CastHelloText-ios" sample provided by Google on GitHub.
First I checked all the required steps described by Google were ok:
In your cast developer console: check your Chromecast has the status "Ready for Testing" otherwise register it.
host the receiver somewhere on the web and note the URL
in the cast developer console, declare a new app with a custom receiver and fill the URL of your receiver. Save it and note the application ID.
fill this application ID in the controller of your iOS app: static NSString *const kReceiverAppID = #"1234ABCD";
make sure that your chromecast has the option "Send this Chromecast's serial number to Google when checking for updates" is ticked (in the iOS app it's in the General section of your device)
Finally I solved the issue by rebooting the chromecast:
Run the Chromecast iOS app from Google, click on your chromecast device, click on General and click on the red button "Reboot".
For information, I've performed this reboot after reading the note of this Google documentation:
If you wish to verify that your published application is working properly, you can manually restart your Google Cast device to force a load of new configuration data.
PS:
- to reboot your chromecast you can use any chromecast app provided by Google (iOS, Android, MAC, etc.)
GCKErrorCodeApplicationNotFound - Typically this error will occur if either your device doesn't have [x] send my serial # to Google set, or your AppID is incorrect.
We'll try to get the docs updated shortly.
For test this app you will need to change this line
[self.deviceManager launchApplication:kReceiverAppID];
To use default applicationID:
[self.deviceManager launchApplication:kGCKMediaDefaultReceiverApplicationID];
Or you need to create a development account and to change kReceiverAppID with your AppID.
And if you have an another error, you can to check the GCKError.h class, there has all error codes possible with explanation
I had the same problem. In my case seems like the Chromecast still associated with the old Application ID. It worked fine after restarting the device.

How do Apple detect if an iphone app is installed when clicking on a pure html link?

I am trying to detect if my ipad app is installed on a device when visiting my website, in order to suggest different action to the visitor.
Thanks to this post :
https://stackoverflow.com/a/8310348/1128754
I found that the "store" application on iphone seems to have achieve to detect if the app is installed on the device. When you click on store links, it launch the app instead of going to the mobile web version.
For example, if you go to :
http://store.apple.com/xc/anythinghere
with an iphone on which apple store app is installed ( http://itunes.apple.com/app/id375380948 )
it automatically start the store app, instead of the web page.
I tried to follow the stack call with mitmproxy but safari doesn't seems to ask query before launching the app.
So, I guess they did custom url scheme recognition, with http:// links.
Do you think it is possible?
This is done with URL protocol handlers:
http://www.iphonedevfaq.com/index.php?title=URL_schemes#URL_Protocol_Handlers
You cannot detect if an app is installed from HTML, but you can launch an app. For example, the popular game "Doodle Jump" can be launched by going to doodlejump://, but if you don't have it installed, the link won't work. As mentioned, this is done with a custom URL scheme and needs to be coded into your app.

Resources