presentViewController[swift,Objective-C,ios13]

iOS13から画面遷移をするとポップアップしたようになりスワイプでもviewを消せるようになった。

私のアプリでA→B(問題があるView、スワイプ)→A→B(dissmissボタンを押す)この時に何故か落ちる。

Fatal Exception: NSInternalInconsistencyException Modifications to the layout engine must not be performed from a background thread after it has been accessed from the main thread.

メインスレッドにキューを入れればいいようだが入れても直らなかった。

iosにそんな時間をかけたくなかったのでスワイプをそもそもできなくした。(画面をフルにした。)

Appdelegate.m obj-c

FilterNewShowViewController *shopViewC = [[FilterNewShowViewController alloc] initWithNibName:@"FilterNewShowViewController" bundle:[NSBundle mainBundle]];

>>>>shopViewC.modalPresentationStyle =  UIModalPresentationFullScreen;  

>>>>shopViewC.modalInPopover = YES;  //スワイプで消えなくなる。

self.window.rootViewController = shopViewC;

[self.window makeKeyAndVisible];
Viewcontroller.m obj-c
FilterNewShowViewController *shopViewC = [[FilterNewShowViewController alloc] initWithNibName:@"FilterNewShowViewController" bundle:[NSBundle mainBundle]];
>>>>shopViewC.modalPresentationStyle = UIModalPresentationFullScreen; //表示形式の選択
>>>>shopViewC.modalInPopover = YES; //スワイプで消えなくなる。
[self presentViewController:shopViewC animated:YES completion:nil];
Viewcontroller.swift
let vc = UIViewController()
>>>>vc.modalPresentationStyle = .fullScreen;
>>>>vc.isModalInPresentation = true;
present(vc, animated: false, completion: nil)

Apple リジェクト3 Guideline 3.1.2 – Business – Payments – Subscriptions after Guideline 4.3 – Design [reject]

2018年12月7日 14:06
差出人: Apple
Guideline 3.1.2 – Business – Payments – Subscriptions

We noticed that your app’s metadata did not fully meet the terms and conditions for auto-renewing subscriptions, as specified in Schedule 2, section 3.8(b) of the Paid Applications agreement.

App Store Information
We were unable to find the following App Store Information items in App Store Connect.

– Information about the auto-renewable nature of the subscription in your app’s description:
• Title of publication or service
• Length of subscription (time period and content or services provided during each subscription period)
• Payment will be charged to iTunes Account at confirmation of purchase
• Subscription automatically renews unless auto-renew is turned off at least 24-hours before the end of the current period
• Account will be charged for renewal within 24-hours prior to the end of the current period, and identify the cost of the renewal
• Subscriptions may be managed by the user and auto-renewal may be turned off by going to the user’s Account Settings after purchase
• Any unused portion of a free trial period, if offered, will be forfeited when the user purchases a subscription to that publication, where applicable
– A link to the terms of use in either the app description or EULA field

Next Steps

To resolve this issue, please revise your app’s metadata to include this missing information. If the above information is in your app, please reply to this message in Resolution Center to provide details on where to locate it.

上記の通り指示があり情報を付け加えた後からの下記

Hello XXX,

Thank you for providing this information.

Upon further review, we found that your app does not comply with the following guidelines:

Guideline 4.3 – Design

We noticed that your app provides the same feature set as other apps submitted to the App Store; it simply varies in content or language, which is considered a form of spam.

The next submission of this app may require a longer review time, and this app will not be eligible for an expedited review until this issue is resolved.

Next Steps

– Review the Design section of the App Store Review Guidelines.
– Ensure your app is compliant with all sections of the App Store Review Guidelines and the Terms & Conditions of the Apple Developer Program.
– Once your app is fully compliant, resubmit your app for review.

When creating multiple apps where content is the only varying element, you should offer a single app to deliver differing content to customers. If you would like to offer this content for purchase, it would be appropriate to use the in-app purchase API.

Alternatively, you may consider creating a web app, which looks and behaves similar to a native app when the customer adds it to their Home screen. Refer to the Configuring Web Applications section of the Safari Web Content Guide for more information.

Submitting apps designed to mislead or harm customers or evade the review process may result in the termination of your Apple Developer Program account. Review the Terms & Conditions of the Apple Developer Program to learn more about our policies regarding termination.

While your App Store Connect Application State shows as Metadata Rejected, we still require a new binary to correct this issue.

Best regards,

App Store Revie

気が狂ってる。
ちなみにReviewのwは本当になかった。
この時もLeoだったようなのでいい加減だった。

Apple リジェクト2 Guideline 2.3.7 – Performance – Accurate Metadata [reject]

今まであったパターン2

XXXX年XX月XX日 1:22
差出人: Apple
Guideline 2.3.7 – Performance – Accurate Metadata

Your app name or subtitle to be displayed on the App Store includes keywords or descriptors, which are not appropriate for use in these metadata items.

Specifically, the following words in your app name or subtitle are considered keywords or descriptors:

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Next Steps

To resolve this issue, please revise your app name or subtitle to remove any keywords and descriptors from all localizations of your app. Keywords can be entered in the Keywords field in App Store Connect to be used as search terms for your app.

Before submitting your app to the App Store, ensure there are no unnecessary phrases, words, or descriptions in the app’s name, description, icons, preview, or other metadata fields. As a best practice, your app’s metadata should communicate the app’s value in as few words as possible.

Resources

For information on how to revise your app name, please review Renaming a Project or App.

For information on changing the app name and other metadata in App Store Connect, please review the View and edit app information page.

For resources on selecting a memorable and unique app name and subtitle, you may want to review the App Store Product Page information available on the Apple Developer website.

Since your App Store Connect status is Metadata Rejected, we do NOT require a new binary. To revise the metadata, visit App Store Connect to select your app and revise the desired metadata values. Once you’ve completed all changes, reply to this message in Resolution Center and we will continue the review.

素直に編集するべし

Apple リジェクト 2. 3 Performance: Accurate Metadata 4. 3 Design: Spam [reject]

今まであったパターン1

XXXX年X月XX日 15:41
差出人: Apple
2. 3 Performance: Accurate Metadata
4. 3 Design: Spam
Hello,

Thank you again for your response.

If you would prefer to speak about this issue over the phone, we can arrange for an Apple Representative to call you within the next three to five business days to discuss your App Review issue.

To request a call, please reply to this message with the best phone number to reach you.

Best regards,

App Store Review

この時は電話しても現状は変わりません。意味がないでしょう。
おそらく日本人なら長谷川が出てくるでしょう.

可能な限り問題解決センターやApp review Boardでやりとりをして文章化して記録に残しましょう。
電話ですと一方的にAppleの主張がされてエビデンスの要求をしてもだしてきませんし記録に残りません。
公正取引委員会に提出するためにも文章化し記録に残しましょう。

androidのwebviewでjsのalertが表示されない[java]

androidのwebviewでjsのalertが表示されない

[確かiOSでも似たようなことがあったな]

webviewで単にwebを表示しただけではalertが表示されないので1行追加する必要がある。

mWebView.setWebChromeClient(new WebChromeClient());

元のコード

mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new JavaScriptInterface(), "showHtml");
mWebView.setWebViewClient(new WebViewClientSample());
mWebView.loadUrl(url);

修正

mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.addJavascriptInterface(new JavaScriptInterface(), "showHtml");
mWebView.setWebViewClient(new WebViewClientSample());
mWebView.setWebChromeClient(new WebChromeClient());
mWebView.loadUrl(url);

window.openで値を渡す方法 [javascript,html]

javascriptのwindow.openを使って新しいページを開きたい。

その時に一緒にデータを渡したい。

遷移元のjs

var mapForm = document.createElement("form");
mapForm.target = "Map";
mapForm.method = "POST"; 
mapForm.action = "xxxx.html"; //絶対パスもOK


var mapInput = document.createElement("input");
mapInput.type = "text";
mapInput.name = "before";
mapInput.value = 'なんかのてきすと';
mapForm.appendChild(mapInput);


document.body.appendChild(mapForm);

map = window.open("", "Map", "newtab");


if (map) {
mapForm.submit();
} else {
alert('You must allow popups for this map to work.');
}

データ遷移先のHTML

<textarea id="before" class="resizable" name="before">なにかのてきすと</textarea>