Discussion on SuperView - WebView App for iOS with Push Notification, AdMob, In-app Purchase

113 comments found.

it’s possible to use in-app to sell digital services, like subscriptions, inside webview?

Hi, currently it is implemented to use the button on bottom toolbar. Just provide the IAP id of non-subscription id. What you want is possible but it is very complex and it is not implemented in the all. Best

Can you can make this customization? I need two buttons (with two plans) inside webview calling StoreKit to make the purchase. After purchase made, this call another url inside webview.

Currently I don’t have time for any customizations. Sorry

More than 50 errors on building from the workspace, which I open for the very first time, and without changing anything (just building). Please can you provide help here ?

Thank you for the extra fast reply, you are right (my bad) I am using 7.5 version. I will update and see what changes. Anyway, thank you ! (and sorry for this).

I also purchased your Android version that works like a charm !

No problem. Do ask if you need anything. Please consider rating the apps. Best regards

Hello.

Your app is cool. I am very anxious to see if I will succeed in publishing it with Apple!

I would like to know how to put the messages dialogue in French. My public is French and I have an interface in English.

https://granddanoisfan.club/tmp/fr.png

Thank you for helping me.

Yannick

Hi, the dialog that you sent me is native, users that are using French language should see dialog in French, same with all other languages. Best regards

Apple doesn’t want to publish the app __ : Your app provides a limited user experience as it is not sufficiently different from a mobile browsing experience. As such, the experience it provides is similar to the general experience of using Safari. Including iOS features such as push notifications, Core Location, and sharing do not provide a robust enough experience to be appropriate for the App Store.

Sorry to hear that. Can you try something else, maybe putting your website in www folder and sending it like that if your site is static. I have one proposal but send me an email from my profile page first. Best

Hey Bro how can i disblae the 3d touch ? because if anyone press to any link the app he will see it and open in safari! example: https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcSbDdkdJpX8CEuTdAKCvSkVuxa1saAqlIhZqfhF59Aaj0E-MYsC

please give me the steps how to disbale this :S Thank you Bro

Hi, you need to add this methods in ViewController.swift:

@available(iOS 10.0, *)
func webView(_ webView: WKWebView, shouldPreviewElement elementInfo: WKPreviewElementInfo) -> Bool {
    return false
}
@available(iOS 9.0, *)
public func previewingContext(_ previewingContext: UIViewControllerPreviewing, commit viewControllerToCommit: UIViewController) {
    self.unregisterForPreviewing(withContext: previewingContext)
}
@available(iOS 9.0, *)
public func previewingContext(_ previewingContext: UIViewControllerPreviewing, viewControllerForLocation location: CGPoint) -> UIViewController? {
    return nil
}

Bro !!! BIG thanks !!! you if u brows the comment to buy the app just buy yoo !!

I need your webview to change the url with the push notification, passing url in additionalData, is it possible?

My solution for OneSignal, work for me! maybe you can check it

In AppDelegate.swift, add NoticationCenter :

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
   //...
    if let oneSignalAppID = appData?.value(forKey: "OneSignalAppID") as? String {
        if !oneSignalAppID.isEmpty {
            application.registerForRemoteNotifications()
            OneSignal.initWithLaunchOptions(launchOptions, appId: oneSignalAppID
            , handleNotificationReceived: { (notification) in
                    print("Received Notification - \(notification?.payload.notificationID)")
            }, handleNotificationAction: { (result) in
                let payload: OSNotificationPayload? = result?.notification.payload
                var fullMessage: String? = payload?.body
                if payload?.additionalData != nil {
                    var additionalData: [AnyHashable: Any]? = payload?.additionalData
                    if additionalData= nil {
                        var userInfo = Dictionary<String, String>()
                        userInfo["url"] = additionalData!["url"] as? String
                        NotificationCenter.default.post(name: REFRESH_NOTIFICATION, object: nil, userInfo: userInfo)
                        NotificationCenter.default.post(name: REFRESH_NOTIFICATION, object: nil, userInfo: dataDict)
                        fullMessage = fullMessage! + "\n url:\(additionalData)" 
                    }
                }
                print("fullMessage:: \(fullMessage!)")
            }, settings:
                [kOSSettingsKeyInAppAlerts: false,
                 kOSSettingsKeyAutoPrompt: false,
                 kOSSettingsKeyInAppLaunchURL: false
                ])
            print("OneSignal registered!")
        }
    } else {
        print("OneSignal API Key is not in the plist file!")
    }
    //...
    return true
}

in viewController, add observer

override func viewDidLoad() {
    super.viewDidLoad()
    //....
    NotificationCenter.default.addObserver(forName: REFRESH_NOTIFICATION, object: nil, queue: nil) { notification in
        self.changeload(urlForWebView: URL(string: notification.userInfo?["url"]! as! String)!)
    }
}
func changeload(urlForWebView: URL) {
    self.wkWebView?.removeObserver(self, forKeyPath: "loading")
    self.wkWebView?.removeObserver(self, forKeyPath: "estimatedProgress")
    self.wkWebView?.navigationDelegate = nil
    self.wkWebView?.uiDelegate = nil
    self.wkWebView = nil
    _ = self.wkWebView
    let tempURL = self.mainURL
    self.mainURL = urlForWebView
    self.loadWebSite()
    self.mainURL = tempURL
}

Yes, that is ok, I will use this also for my implementation. Thanks

replace:

var userInfo = Dictionary<String, String>()
userInfo["url"] = additionalData!["url"] as? String

with:

let tempUrl = additionalData!["url"] as? String
var userInfo = Dictionary<String, String>()
userInfo["url"] = tempUrl

Hello, A pre-sale question. Can this app use webview when the customer click on the links it will open his external safari browser? for example my domain name is test.com. your app will load the full content of the website http://test.com iin webview (Like your CNN.com video example) but if the customer press on the links inside the content it will open them in the device external Sfarai browser instead of opening them inside the app with the webview.

Hi, if I understand correctly, you want to open Safari from my app when you press some url on the webview. Yes that is possible, you will just need to customize the app a little bit, I can help you to do that. Best

Sorry for my English. In the page with which I use SuperView has external links to facebook and twitter. The first time I click on them opens popViewController but never again can open popViewController remains loading infinitely. Can you help me with this?

Hi, you will need to send me the project on email or url of the site and describe what I need to do to replicate that scenario. I will check it out and let you know what can be done. Best

4. 2 Design: Minimum Functionality (iOS) Design – 4.2

Your app provides a limited user experience as it is not sufficiently different from a mobile browsing experience. As such, the experience it provides is similar to the general experience of using Safari. Including iOS features such as push notifications, Core Location, and sharing do not provide a robust enough experience to be appropriate for the App Store.

Please revise your app to provide a more robust user experience by including additional native iOS functionality.

Hi, yes apple loves to make our lives miserable. Can you put your website in www folder if your site is static. I am here to help you if I can somehow. Just send me an email on brommko@yahoo.com

hi i have problem with build no such module SwiftyUserDefaults

Make sure you opened the white SuperView.xcworkspace icon as shown in the quick guide video, not SuperView.xcodeproj icon.

perfect its working thanks

wcastillo

wcastillo Purchased

How can I send push notifications? While I try to compile it in my device does not allow show 3 error messages, about apple dev account and compatibility with iOS 9, can you help?

Hi. Make sure you opened the white SuperView.xcworkspace icon as shown in the quick guide video, not SuperView.xcodeproj icon. Here is how you can setup push notification certificates for onesignal.

https://www.youtube.com/watch?v=pmJ6xSntZjo

Best regards

wcastillo

wcastillo Purchased

How can I send push notifications? While I try to compile it in my device does not allow show 3 error messages, about apple dev account and compatibility with iOS 9, can you help?

Hi. Make sure you opened the white SuperView.xcworkspace icon as shown in the quick guide video, not SuperView.xcodeproj icon. Here is how you can setup push notification certificates for onesignal.

https://www.youtube.com/watch?v=pmJ6xSntZjo

Best regards

Hello, I have integrated OneSignal and everything perfect except it does not ask the user to install the app localization permissions to be able to later use with OneSignal. How can I enable it to ask for location permissions in the app?

Hi Brommkollc,

If I already have everything prepared but I only need the app has the option to buy location. According to point 1 you should obviously be in the app the code to request access data and send them to onesignal. Can you tell me how to put it in the app to keep the location in onesignal?

1. Determine the user’s location To send messages to users by location, make sure you have the location permission set in your app and are prompting for location permissions in your app’s code.

Thankyou !

Brommkollc, Ok I’ve already integrated it, so simple if it serves you like this:

In Viewcontroller :
let locationManager = CLLocationManager() // Add this statement

In viewDidLoad :

locationManager.delegate = self
locationManager.requestAlwaysAuthorization()

Thankyou!

Yes, that is the way.

by
by
by
by
by
by